2

リモート マシン上のプロセスを検索し、終了コードを渡して別のプロセスで処理できるようにしようとしています。したがって、プロセスが存在する場合は終了コード 1 を出力し、存在しない場合は何もしません。別の投稿の助けを借りて、以下のスクリプトを作成しました。localmachine/local プロセスに対しては機能しますが、リモート プロセス/マシンに対しては何も返しません。以下のスクリプトでは、スタンドアロンの 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 に答える