Batch file 传递退出代码的远程计算机和Findstr的任务列表

Batch file 传递退出代码的远程计算机和Findstr的任务列表,batch-file,findstr,tasklist,Batch File,Findstr,Tasklist,我试图在远程机器上搜索一个进程,并传递一个退出代码,以便它可以由另一个进程处理。因此,如果进程存在,则输出退出代码1,如果不存在,则不执行任何操作。 我在另一篇文章的帮助下写了下面的脚本。它适用于本地进程/本地进程,但对远程进程/机器不返回任何内容。在下面的脚本中,如果我使用standalone tasklist命令,它就会工作 @echo off setlocal enableDelayedExpansion set "cmd=tasklist.exe /NH /s RemoteMachin

我试图在远程机器上搜索一个进程,并传递一个退出代码,以便它可以由另一个进程处理。因此,如果进程存在,则输出退出代码1,如果不存在,则不执行任何操作。 我在另一篇文章的帮助下写了下面的脚本。它适用于本地进程/本地进程,但对远程进程/机器不返回任何内容。在下面的脚本中,如果我使用standalone 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
)

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


谢谢你的命令。它工作得很好。我对它进行了一些调整,以使输出优先于我@TASKLIST.exe/NH/s RemoteMachine/u RemoteMachine\administrator/p Password/fi“Imagename eq Install.exe”| FINDSTR“No Tasks”如果%errorlevel%==0 echo Exit 0如果%errorlevel%==1 echo Exit 1Hey,这是反转结果的聪明方法!
@tasklist.exe /NH /s RemoteMachine /u RemoteMachine\administrator /p Password /fi "Imagename eq Install.exe" | findstr "Install.exe" >nul