Запуск нескольких команд в cmd через psexec

Я работаю над созданием одной команды, которая будет запускать несколько вещей в командной строке другой машины. Вот что я хочу сделать.

  • Используйте psexec для доступа к удаленной машине
  • перейти к нужному каталогу и файлу
  • выполнить муравьиную задачу
  • выйти из командной строки
  • бежать вместе в одну линию

Я могу запустить приведенную ниже команду из «Выполнить», чтобы выполнить то, что мне нужно, но, похоже, не могу получить правильный формат для psexec, чтобы понять его.

cmd /K cd /d D:\directory & ant & exit

Я попытался применить это к приведенному ниже примеру psexec:

psexec \\machine cmd /K cd /d D:\directory & ant & exit 

При выполнении этого он активирует командную строку и переходит к D:\directory, но не выполняет остальные команды. Добавление "" просто создает больше проблем.

Может ли кто-нибудь указать мне правильный формат? Или что-то другое, кроме psexec, я могу использовать для этого (только бесплатные варианты)?


person Steve Miskiewicz    schedule 04.01.2012    source источник


Ответы (5)


Наконец-то понял это после еще нескольких поисков в Интернете, проб и ошибок. psexec требуется /c для запуска нескольких команд, но этот синтаксис не работает с настройкой, которую я написал выше. Я получил следующую команду для запуска того, что мне нужно.

psexec \\machine cmd /c (^d:^ ^& cd directory^ ^& ant^) 

Мне не нужно выходить, потому что psexec завершится после завершения. Вы также можете использовать &&, чтобы потребовать успеха для перехода к следующей команде. Нашел этот форум полезным

https://web.archive.org/web/20161018222251/http://forum.sysinternals.com/psexec_topic318.html

И это для запуска команд psexec

http://ss64.com/nt/psexec.html

person Steve Miskiewicz    schedule 05.01.2012
comment
Объясните мне пожалуйста, когда именно ставить ^, не могу разобраться с этим кодом. - person IGRACH; 23.11.2016

Это работает:

psexec \ComputerName cmd /c "echo hey1 & echo hey2"

person TByte    schedule 31.07.2013

Поскольку вы спрашивали о других вариантах, а здесь есть управление конфигурацией тегов — я думаю, вас может заинтересовать Jenkins (или Хадсон). Это обеспечивает очень хороший способ создания механизма master-slave, который может помочь упростить процесс сборки.

person Jayan    schedule 05.01.2012

Я всегда использую так :) и работает правильно

psexec \\COMPUTER -e cmd /c (COMMAND1 ^& COMMAND2 ^& COMMAND3)
person serdar    schedule 17.10.2014

Для простых случаев я использую:

PsExec \\machine <options> CMD /C "command_1 & command_2 & ... & command_N"

В более сложных случаях более подходящим может быть использование пакетного файла с переключателем -c PsExec:

Переключатель -c указывает PsExec скопировать указанный исполняемый файл в удаленную систему для выполнения и удалить исполняемый файл из удаленной системы после завершения работы программы.

PsExec \\machine <options> -c PSEXEC_COMMANDS.cmd <arguments>
person andronoid    schedule 18.06.2020