
[已解決]批處理BAT腳本if中包含標(biāo)簽的問(wèn)題最后由 lo
nron 于 -3-22 18:33
- if exist %Tmp%Testtest.lock (
- for /f delims= %%a in ('powershell (new-timespan (gc '%Tmp%Testtest.lock') (date -format 'yyyy.MM.dd HH:mm:ss')).totalseconds') do (
- if %%a geq 60 (
- :Cleaning
- tasklist | find XXX.exe >nul && (
- taskkill /im XXX.exe /t /f >nul
- goto Cleaning
- )
- rd /s /q %Tmp%Test
- ) else (
- goto tag2
- )
- )
- )
- :tag1
- cls
- echo.
- echo tag1 ...
- pause
- :tag2
- cls
- echo.
- echo tag2 ...
- pause
nclick="copycode($('code0'));">復(fù)制代碼
當(dāng) %Tmp%Testtest.lock 存在時(shí),如果 XXX.exe 是未啟動(dòng)狀態(tài),且 %%a 大或等于 60,那么最終測(cè)試結(jié)果是:關(guān)閉了XXX.exe、刪除了%Tmp%Test、跳轉(zhuǎn)到 tag1 標(biāo)簽。當(dāng) %Tmp%Testtest.lock 存在時(shí),如果 XXX.exe 是已啟動(dòng)狀態(tài),且 %%a 大或等于 60,那么最終測(cè)試結(jié)果是:關(guān)閉了XXX.exe、刪除了%Tmp%Test、跳轉(zhuǎn)到 tag2 標(biāo)簽。這是為什么?還有就是如果將 geq 換成 lss 然后將 兩個(gè)返回值調(diào)換下也就是:
- if exist %Tmp%Testtest.lock (
- for /f delims= %%a in ('powershell (new-timespan (gc '%Tmp%Testtest.lock') (date -format 'yyyy.MM.dd HH:mm:ss')).totalseconds') do (
- if %%a lss 60 (
- goto tag2
- ) else (
- :Cleaning
- tasklist | find XXX.exe >nul && (
- taskkill /im XXX.exe /t /f >nul
- goto Cleaning
- )
- rd /s /q %Tmp%Test
- )
- )
- )
- :tag1
- cls
- echo.
- echo tag1 ...
- pause
- :tag2
- cls
- echo.
- echo tag2 ...
- pause
nclick="copycode($('code1'));">復(fù)制代碼
同樣是 %Tmp%Testtest.lock 存在時(shí),無(wú)論 XXX.exe 是否啟動(dòng),只要 %%a 大或等于 60,結(jié)果都是 關(guān)閉了XXX.exe、刪除了%Tmp%Test、跳轉(zhuǎn)到 tag1 標(biāo)簽。為什么會(huì)出現(xiàn)這種情況?沒(méi)有找到其中的原因,只感覺(jué)是不是和判斷中的標(biāo)簽 Cleaning 有關(guān)?