遇到此批处理代码的错误

Experiencing a bug with this Batch code

我正在使用批处理制作一个程序,当有人在他们的 ftp 服务器上时发出通知。现在我有一个脚本可以检查然后向 rainmeter 的 NXT-OS 皮肤发送命令以打开通知程序。它通过尝试从 ftp 服务器下载文件来执行此操作,因为如果文件存在,则表示用户在线。如果它不存在,那么我们就知道它不存在。我已将其设置为不存在文件。但是现在我遇到了一个错误,它在没有任何弹出框的情况下发出通知的哨声。有人可以看看这段代码,看看它是如何在没有人在线的情况下发送一半命令的吗?谢谢!注意:包含的代码不是全部,因为代码包含 ftp 服务器地址和密码。谢谢!

Get Rainmeter

(运行 在 Windows)

Get NXT-OS

Rem This is where it checks if the files were downloaded
if exist on.%friend1% set Friend1Stat=On
if exist on.%friend2% set Friend2Stat=On
if exist on.%friend3% set Friend3Stat=On
if exist on.%friend4% set Friend4Stat=On
if exist on.%friend5% set Friend5Stat=On


if exist on.%friend1% set /p Friend1Name=<on.%friend1%
if exist on.%friend2% set /p Friend2Name=<on.%friend2%
if exist on.%friend3% set /p Friend3Name=<on.%friend3%
if exist on.%friend4% set /p Friend4Name=<on.%friend4%
if exist on.%friend5% set /p Friend5Name=<on.%friend5%
if not exist log.txt echo. >log.txt
echo %time% %date% >>log.txt
set >>log.txt

if %Friend1Stat%==on goto friend1
goto friend1b
:back1
if %friend2stat%==on goto friend2
goto friend2b
:back2

if %friend3stat%==on goto friend3
goto friend3b
:back3

if %friend4stat%==on goto friend4
goto friend4b
:back4

if %friend5stat%==on goto friend5
goto friend5b
:back5

echo Complete. Waiting 60 seconds before starting again.
choice /c q /d q /t 60 /n
goto TESTFORFRIENDS

:friend1
if %friend1run%==yes goto back1
set friend1run=yes
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend1', style = 2, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend1name% is Online', body = '%friend1name% is on their computer.%time%'})" "nxt-os\Notify"
goto back1

:friend1b
if %Friend1run%==no goto back1
set friend1run=no
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend1', style = 2, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend1name% is Offline', body = '%friend1name% is no longer on their computer. %time%'})" "nxt-os\Notify"
goto back1

:friend2
if %friend2run%==yes goto back2
set friend2run=yes
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend2', style = 2, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend2name% is Online', body = '%friend2name% is on their computer.%time%'})" "nxt-os\Notify"
goto back2

:friend2b
if %Friend2run%==no goto back2
set friend2run=no
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend2', style = 2, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend2name% is Offline', body = '%friend2name% is no longer on their computer. %time%'})" "nxt-os\Notify"
goto back2


:friend3
if %friend3run%==yes goto back3
set friend3run=yes
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend3', style = 3, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend3name% is Online', body = '%friend3name% is on their computer.%time%'})" "nxt-os\Notify"
goto back3

:friend3b
if %Friend3run%==no goto back3
set friend3run=no
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend3', style = 3, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend3name% is Offline', body = '%friend3name% is no longer on their computer. %time%'})" "nxt-os\Notify"
goto back3

:friend4
if %friend4run%==yes goto back4
set friend4run=yes
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend4', style = 4, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend4name% is Online', body = '%friend4name% is on their computer.%time%'})" "nxt-os\Notify"
goto back4

:friend4b
if %Friend4run%==not goto back4
set friend4run=no
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend4', style = 4, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend4name% is Offline', body = '%friend4name% is no longer on their computer. %time%'})" "nxt-os\Notify"
goto back4

:friend5
if %friend5run%==yes goto back5
set friend5run=yes
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend5', style = 5, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend5name% is Online', body = '%friend5name% is on their computer.%time%'})" "nxt-os\Notify"
goto back5

:friend5b
if %Friend5run%==not goto back5
set friend5run=no
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'Online-Friend5', style = 5, sound = 1, icon = 'Resources\Images\Welcome.png', title = '%friend5name% is Offline', body = '%friend5name% is no longer on their computer. %time%'})" "nxt-os\Notify"
goto back5




:nosettings
"C:\Program files\Rainmeter\rainmeter.exe" ^!CommandMeasure "Notify" "notify({name = 'ITCMD', group = 'no-settings', style = 2, sound = 1, icon = 'Resources\Images\Welcome.png', title = 'Set Up ITCMD Notifier', body = 'Open the Location of the Notifier and edit settings.ini Then Restart the program.'})" "nxt-os\Notify"

echo :: Set Friend Usernames here! (Users set their own usernames) >settings.ini
echo. >>settings.ini
echo set Friend1=Set>>settings.ini
echo set Friend2=Set>>settings.ini
echo Set Friend3=Set>>settings.ini
echo Set Friend4=Set>>settings.ini
echo Set Friend5=Set>>settings.ini
echo. >>settings.ini
echo. >>settings.ini
echo :: Note: Do not change anything but the friend uernames! Fatal errors could occur. >>settings.ini
exit /b

提前致谢!如果您有任何问题,请告诉我!

我在雨量计日志文件中发现了一些东西:

Rainmeter: Debugging: ITCMD has sent an invalid notification type

当我使用查找和替换来替换 %friend2%%Friend2Name% 中的所有数字时,我意识到 "style" 的数字上升到 3 4 和 5!无论如何感谢您的帮助。希望这对其他人有帮助!