我正在尝试使批处理脚本工作,我得到运行我的脚本的计算机A,让计算机B ping计算机C并返回我可以输出的错误级别。 目前我正试图通过使用PSEXEC访问计算机B上的命令行并使其ping到C来实现这一点。当然问题是,由于命令在B上成功执行,因此errorlevel总是返回为“0”但是我需要的是C的结果。
SET /P ALTTERM=Please specify another terminal to test from [0**]?
ECHO.
ECHO Running internal ping test from terminal %ALTTERM%...
PSEXEC \\%HOSTNAME%-%ALTTERM% PING %HOSTNAME%-%TERMINAL%
IF ERRORLEVEL 0 SET INTERNALPING=PASS
IF ERRORLEVEL 1 SET INTERNALPING=FAIL
ECHO.
ECHO Internal ping test %INTERNALPING%
脚本中先前设置的主机名和终端的详细信息。 脚本不显示工作仅显示回显线和结果也很重要。我用过
/ f> nul 2>& 1
脚本中的其他地方抑制输出
答案 0 :(得分:0)
根据Windows IT Pro(在Microsoft TechNet中提到):
PsExec显示进程的退出代码并返回退出代码 它自己的退出代码。
所以,你的批次应该可以工作。
在ECHO ErrorLevel=%ERRORLEVEL%
之后加PSEXEC ...
只是为了确保。
要禁用输出,请将>NUL 2>NUL
或>NUL 2>&1
附加到PSEXEC ...
命令行。你没有使用/f
(你从哪里得到它?)