Список задач для удаленной машины и Findstr, передающий код выхода - PullRequest
2 голосов
/ 24 февраля 2012

Я пытаюсь найти процесс на удаленной машине и передать код выхода, чтобы он мог быть обработан другим процессом. Поэтому, если процесс существует, выведите код выхода 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
)

1 Ответ

2 голосов
/ 25 февраля 2012

Я бы посоветовал вам изменить логику возврата кодов выхода.Команды Windows, такие как FINDSTR, используют для этого другую логику: если есть совпадение, код выхода равен 0, а если совпадения нет, то это 1. И поскольку логика уже реализована в FINDSTR, вы можете просто используйте это:

@tasklist.exe /NH /s RemoteMachine /u RemoteMachine\administrator /p Password /fi "Imagename eq Install.exe" | findstr "Install.exe" >nul
...