批处理脚本ErrorLevel输出

时间:2016-09-06 14:52:13

标签: batch-file cmd

我需要帮助 - 我正在尝试将任何1或更大的ErrorLevel输出到日志文件中。当我发出命令时,日志文件永远不会被生成。任何帮助将不胜感激。

脚本:

for /f "delims=" %%i in (C:\_\Restart\Computer.txt) do (
start "%%i" \_\PStools\psexec \\%%i -u Administrator -p Password -i c:\restart.cmd
if not %errorlevel%==0 echo %errorlevel% > error.log
)

此脚本允许我使用PSEXEC并立即向所有计算机发出重启命令。但是其中有几个失败了,我想知道哪些失败了。

谢谢!

这是我应该使用的格式吗?

setlocal EnableDelayedExpansion

for /f "delims=" %%i in (C:\_\Restart\Computer.txt) do (
start "%%i" \_\PStools\psexec \\%%i -u Administrator -p Password -i c:\restart.cmd
if errorlevel 1 echo !errorlevel! > error.log
)

1 个答案:

答案 0 :(得分:1)

脚本V3:

setlocal EnableDelayedExpansion

for /f "delims=" %%i in (C:\temp\list.txt) do (
start "" "shutdown" /m \\%%i -r -f -t 900
echo !errorlevel! && echo %%i
if errorlevel 1 echo !errorlevel! >> c:\temp\log.txt && echo %%i >> c:\temp\log.txt
)

-m =使用远程计算机

-r = reboot

-f =强制重启

-t =重启前的延迟时间

你可以使用shutdown - ?有关可以传递给reboot命令的参数的更多帮助。

没有启动命令的脚本v4:

setlocal EnableDelayedExpansion

for /f "delims=" %%i in (C:\temp\list.txt) do (
shutdown /m \\%%i -r -f -t 900
echo !errorlevel! && echo %%i
if errorlevel 1 echo !errorlevel! >> c:\temp\log.txt && echo %%i >> c:\temp\log.txt
)