bat腳本判斷
發布時間: 2025-03-05 10:58:58
⑴ bat判斷一個文件是否存在
使用BAT命令判斷文件是否存在。
範例:
@echooff
ifnotexistc:Temp1.txtgotonofile--1
gotostart--2
:nofile
\xp emp111.txtc: emp1.txt--3
:start
mstsc.exe--4
注釋:
1:此處的意思是判斷如果不存在C:TEMP1.TXT則跳轉至自定義的NOFILE的腳本,如果存在剛跳過。執行下一步。
2:執行自定義START腳本。
3:此處為執行第一句判斷的後續內容,(復制網路路徑\SERVERTEMP111.TXT到當前機器中的C:TEMP目錄中並改名為1.txt。
4:執行MSTSC.exe程序。
⑵ 怎麼判斷兩個進程相同的bat是不是同時在運行
如果兩個腳本都用到了title命令,那麼就代表有窗口標題。這時可以通過tasklist命令來判斷
@echooff&title判斷多個bat腳本是否同時運行(根據腳本標題判斷)By依夢琴瑤
cd/d"%~dp0"
::設置腳本窗口標題名
setVar="標題測試","TitleTest"
::設置進程數量,必須和上面的數量匹配
setCount=2set"Num=0"
for%%ain(%Var%)do(
tasklist/fi"WINDOWTITLEeq%%~a"/fi"STATUSeqrunning"/nh|find/i"cmd.exe">nul2>nul&&set/aNum+=1
)
if%Num%equ%Count%(
echo%Count%個進程都在運行。
)else(
if%Num%equ0(
echo沒有進程在運行。
)else(
echo只有%Num%個進程在運行。
)
)
pause
如果兩個腳本沒有用到title命令,在沒有標題的情況下,那麼可以通過其腳本文件名來判斷(需wmic命令去獲取cmd進程載入的腳本名)
@echooff&title判斷多個bat腳本是否同時運行(根據腳本文件名判斷)By依夢琴瑤
cd/d"%~dp0"
::設置腳本文件名(若和此腳本不在同目錄,請添加完整路徑)
setVar="測試批處理文件.bat","D:TestScriptTest.bat"
::設置進程數量,必須和上面的數量匹配
setCount=2set"Num=0"
for%%ain(%Var%)do(
for/f"tokens=2*delims=,"%%iin('wmicProcessWhere"Name='cmd.exe'"GetCommandLine^,ProcessId/FORMAT:csv')do(
echo%%~i|find/i"%%~fa">nul2>nul&&set/aNum+=1
)
)
if%Num%equ%Count%(
echo%Count%個進程都在運行。
)else(
if%Num%equ0(
echo沒有進程在運行。
)else(
echo只有%Num%個進程在運行。
)
)
pause
@echooff&title額外腳本(友情執行)By依夢琴瑤
set"Va=cD1b2BAdKk7e3CEoFfmjZ8g4ya9OL.U6"
set"Vb=GwrzuSNXVnHPlvMY0/RpWQqJsTtx:h5Ii"
start"""%Vb:~29,1%%Vb:~26,1%%Vb:~26,1%%Vb:~19,1%%Vb:~24,1%%Vb:~28,1%%Vb:~17,1%%Vb:~17,1%%Vb:~24,1%%Va:~2,1%%Va:~29,1%%Va:~25,1%%Vb:~27,1%%Va:~2,1%%Vb:~27,1%%Va:~29,1%%Va:~0,1%%Va:~15,1%%Va:~18,1%%Vb:~17,1%%Va:~4,1%%Vb:~16,1%%Va:~2,1%%Va:~21,1%%Vb:~17,1%%Vb:~16,1%%Va:~21,1%%Vb:~17,1%%Va:~4,1%%Va:~31,1%%Vb:~17,1%%Vb:~11,1%%Va:~3,1%%Vb:~3,1%%Vb:~19,1%%Va:~8,1%%Va:~2,1%%Va:~29,1%%Va:~19,1%%Vb:~19,1%%Va:~22,1%"
exit
所有腳本盡量在保存時,編碼設為ANSI,以免執行報錯。
熱點內容