Я запускаю bat-файл, расположенный на удаленном сервере. Команда: wmic / node: [имя сервера] вызов процесса create "cmd.exe / c [расположение файла bat]. Я бы хотел, чтобы команда дождалась завершения выполнения пакетного файла. Другими словами: команда является частью Jenkins (Hudson) и следующий шаг после запуска пакетной команды окна до завершения задач пакетного файла. Я хотел бы, чтобы следующий шаг был выполнен сразу после завершения выполнения пакетного файла. * Задача (содержимое) пакетного файла восстанавливается БД.
следующий прокомментировал Фрагмент кода может сделать эту работу. К сожалению, протестировать могу только на локальном узле.
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
set "_toRun=cmd.exe /C pause" change to meet your circumstances
set "_where=." sorry testing merely local computer
set "_toGet=ProcessId ReturnValue"
set "_ProcessId="
set "_ReturnValue="
rem %%G loop to get raw return values from `create` like next two lines
rem ProcessId = 6476;
rem ReturnValue = 0;
for /F "tokens=*" %%G in ('
wmic /node:"%_where%" process call create "%_toRun%" ^| findstr "%_toGet%"
') do (
rem %%g loop to assign values to variables `_ProcessId` and `_ReturnValue`
for /F "tokens=1,2 delims=;= " %%g in ("%%~G") do (
set "_%%~g=%%~h"
)
)
if NOT "%_ReturnValue%"=="0" (
echo %_toRun% failed, Return Value %_ReturnValue%
goto :notest
)
echo process %_toRun% runs as %_ProcessId%
rem build WQL query
set "_query=ProcessId = %_ProcessId% and CommandLine = '%_toRun:\=\\%'"
rem loop while queried process runs
:test
set "_CommandLine="
for /F %%G in ('
wmic /node:"%_where%" process where "%_query%" get CommandLine /value ^| findstr "="
') do set "_%%~G"
if not defined _CommandLine goto :notest
set _Comman
>NUL timeout /T 5 /NOBREAK
goto :test
:notest
Ресурсы (обязательное чтение, неполное):
%~G
и т.д. специальная страница) Аргументы командной строки (параметры)>NUL
, |
и т.д. специальная страница) Перенаправление%_toRun:\=\\%
и т.д.) Изменение / замена переменной%%
, ""
, ^
и т.д. специальная страница) Экранированные символы, разделители и цитаты