Пакетный запуск winrs, перенаправляющий вывод
Я должен выполнить команду в кластере, чтобы убить группу процессов.
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f
Я не могу перенаправить вывод. Я нахожу на этом сайте похожие проблемы, но решение здесь:
Есть ли способ перенаправить вывод stderr из команды run с "start" в командной строке Windows?
не работает Я перенаправляю команду winrs, но мне нужно перенаправление taskkill. Любая идея? Благодарю.
1 ответ
Это абсолютно не проверено, и я ничего не знаю о победителях. Но я полагаю, что это только вопрос того, чтобы избежать перенаправления нужное количество раз. Если предположить, что n - это число выходов, то требуемое количество карет составляет от 2 до n-й степени, минус 1 ((2^n)-1).
Если вы хотите, чтобы вывод перенаправлялся в файл на удаленном компьютере, то перенаправление должно быть отложено до тех пор, пока WINRS не запустит удаленный процесс, то есть дважды, один раз для START и один раз для WINRS.
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f ^^^>output.txt
Единственный другой вариант, о котором я могу подумать, - это явный запуск процесса cmd.exe для обработки перенаправления, опять же с экранированным перенаправлением. В этом случае я думаю, что вам нужно три побега:
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD cmd /c taskkill /FI \"USERNAME eq USER" /f ^^^^^^^>output.txt
Если вы хотите, чтобы выходные данные перенаправлялись в файл на локальном компьютере, вам необходимо перенаправить выходные данные WINRS (при условии, что WINRS отображает выходные данные удаленно выполняемого процесса). Так что требуется всего один побег.
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f ^>output.txt
Я удивлен, что вам нужно запустить WINRS через START. Я должен был подумать, что вы могли бы выполнить команду напрямую, так как вы все равно планируете дождаться ее завершения. Если запущен напрямую, и вы хотите, чтобы выходные данные были собраны в локальном файле, то я думаю, что вам не нужно бежать.
winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f >output.txt
Буду признателен за комментарий о том, какие из моих предложений сработают.