2015-12-02 111 views
2

我有一個.bat文件,用於自動安裝我必須在工作中安裝的一段軟件。 (我不能使用PowerShell,因爲很多機器仍然是XP)完成後無法批量註銷

在接近尾聲時,腳本應該自行清理並註銷,但由於某種原因我無法註銷它。

taskkill /f /im explorer.exe>nul 2>&1 
set _sd=%~dp0 
cd /d c:\ 
del "%_sd%md5sum.exe" 
... 
del "%_sd%RUN-AS-ADMIN.bat" 
wait 2 
shutdown -f -l 
+2

等待不是一個有效的命令。 – Squashman

+1

在它繼續之前,「shutdown」默認爲20秒超時嗎?您可以使用'-t xx'參數更改時間長度。 – aphoria

+0

無法使用-t – godofgrunts

回答

2

CMD中沒有wait命令。 Win7 +有timeout,但不適用於XP。要實現某種超時,您必須使用例如ping 127.0.0.1 -n 6 > nul。這會讓你的系統「等待」5秒鐘。您可以通過用任何其他值替換6來修改超時。如果您想要X秒超時,請用X + 1替換6。

+0

註銷哦...我在想什麼?謝謝 – godofgrunts

2

編輯:做了這個愚蠢的錯誤,修理它。

試試這個:

taskkill /f /im explorer.exe>nul 2>&1 
set _sd=%~dp0 
cd /d c:\ 
del "%_sd%md5sum.exe" 
... 
del "%_sd%RUN-AS-ADMIN.bat" 
pause 
shutdown -f -l 

我所做的只是讓這個在wait被替換pause

我做了一些環顧四周,我找不到任何本地命令是使批處理文件延遲並自動繼續,所以這是我能找到的最接近的。 (假設你正在使用此計算機上的是Windows XP)

如果不使用Windows XP的批處理文件,而不是使用:

taskkill /f /im explorer.exe>nul 2>&1 
set _sd=%~dp0 
cd /d c:\ 
del "%_sd%md5sum.exe" 
... 
del "%_sd%RUN-AS-ADMIN.bat" 
timeout /t 2 >nul 
shutdown -f -l 

timeout充當延遲,但不幸的是,它不是在Windows XP上的本地命令,但它是在Windows 7 +(不確定約vista) 希望這會有所幫助:)

+1

CHOICE不是Windows XP中的本機命令。 – Squashman

+1

不好意思。什麼Windows版本支持'wait'命令,所以它現在是一個「停用的」? – Aacini

+0

我的歉意。我一會兒讀了一些東西,我想這是一個不同的命令。等待不是一個命令,據我所知,它從來沒有作爲本地命令存在。非常抱歉,我會修復我的帖子。 –