想請教各位大大,小弟因公司內部有派送需求,透過派送針對清單內特定主機執行程式。
目前於list.txt輸入錯誤主機名稱,測試了幾次發現就算主機名稱不在list內但都會正常執行下載檔案及執行程式,感覺判斷式失效,百思不得其解,想請教各位大大是否有哪邊需調整。
%echo off
for /f "tokens=1 delims=" %%C IN (\127.0.0.1\test\list.txt) do if %%C EQU %COMPUTERNAME% goto start
:start
RD "C:\CleanFile" /S /Q
MD "C:\CleanFile"
copy "\127.0.0.1\test\Clean.exe" "C:\CleanFile\Clean.exe"
"C:\test\Clean.exe"
:end
%%C EQU %COMPUTERNAME% 如果為真 goto start
那沒有寫到為否跳哪裡,他就下一行繼續跑,就是跑 start的內容。
因為電腦名稱一台只有一個,為否的行為放在下面就好。
前面邏輯ture goto start flase則goto nostart
:start <為真goto的旗標
做事
goto Finish <跳過nostart,直接goto Finish
:nostart <為否goto的旗標
goto Finish <個人習慣會加,在這不加也行,但如果後面還有其他旗標或是後人追加新的旗標,才不會往後誤跑。
:Finish
exit