![]() |
Автоматизация запуска на удаленных машинах
На сервере 1 есть 4 bat-файла для серверов 2,3,4,5
которые запускают на них некоторые процедуры с файлами (посредством psexec). Там же на сервере 1 есть 5-ый bat-файл который нужно запустить только после того как отработают первые 4. Cейчас приходится запускать первые 4 файла (один за другим) что бы выполнялись параллельно, а затем, визуально убедившись в том, что они отработали, уже запускать файл 5. Можно ли все это сделать 1 BAT файлом? |
Eug.., можно попробовать так:
Код:
@echo off |
Начало отличное - стартуют все 4 cmd-шника оновременно и пока psexec соединяется, окна действительно называются
"Working with ..." и основной job ждет, но как только psexec соеденился и начинается выполнение cmd файлов на самих серверах, названия окон меняются на \\имя_сервера: путь_к_cmd_файлу, и основной job сразу же стартует (не дождавшись окончания рабрты cmd-шников на сервере). Попробовал вставить строку >nul (2>nul tasklist.exe /fi "WINDOWTITLE eq Working with Server 000*" | find.exe /i "cmd.exe") && goto :Repeat >nul (2>nul tasklist.exe /fi "WINDOWTITLE eq \\192б168*" | find.exe /i "cmd.exe") && goto :Repeat - не помогает... |
О! Вот так - работает! Респект!
@echo off setlocal enableextensions enabledelayedexpansion title Waiting child batches... start "Working with Server 0001..." 0001.cmd ^& exit start "Working with Server 0002..." 0002.cmd ^& exit start "Working with Server 0003..." 0003.cmd ^& exit start "Working with Server 0004..." 0004.cmd ^& exit :Repeat ping.exe -n 2 localhost >nul >nul (2>nul tasklist.exe /fi "WINDOWTITLE eq Working with Server 000*" | find.exe /i "cmd.exe") && goto :Repeat >nul (2>nul tasklist.exe /fi "WINDOWTITLE eq \\192.168.*" | find.exe /i "cmd.exe") && goto :Repeat title Now this batch working... echo Здесь Ваш код pause endlocal exit /b 0 |
Цитата:
Цитата:
|
Время: 18:18. |
Время: 18:18.
© OSzone.net 2001-