2

我正在尝试在远程机器上搜索一个进程并传递一个退出代码,以便它可以由另一个进程处理。所以如果进程存在输出退出代码1,如果不存在则什么都不做。我在另一篇文章的帮助下编写了下面的脚本。它适用于本地机器/本地进程,但对于远程进程/机器不返回任何内容。在下面的脚本中,如果我使用独立的 tasklist 命令它可以工作。

@echo off
setlocal enableDelayedExpansion

set "cmd=tasklist.exe /NH /s RemoteMachine /u RemoteMachine\administrator /p Password /fi "Imagename eq Install.exe""

for /F "delims=*" %%p in ('!cmd! ^| findstr "Install.exe" ') do (
  echo exit 1
)
4

1 回答 1

2

我建议您更改返回退出代码背后的逻辑。类似的 Windows 命令FINDSTR为此使用不同的逻辑:如果匹配,则退出代码为 0,如果不匹配,则为 1。由于该逻辑已在 中实现FINDSTR,您可以使用它:

@tasklist.exe /NH /s RemoteMachine /u RemoteMachine\administrator /p Password /fi "Imagename eq Install.exe" | findstr "Install.exe" >nul
于 2012-02-24T21:13:57.780 回答