Пакетный запуск 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

Буду признателен за комментарий о том, какие из моих предложений сработают.

Другие вопросы по тегам