2015-12-02 110 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

我的歉意。我一会儿读了一些东西,我想这是一个不同的命令。等待不是一个命令,据我所知,它从来没有作为本地命令存在。非常抱歉,我会修复我的帖子。 –