批量启动winrs重定向输出

时间:2014-03-14 09:02:46

标签: batch-file redirect winrs

我必须在群集上执行命令才能终止一组进程。

start /wait winrs -r:NODENAME -u:USERNAME  -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f

我无法重定向输出。我在这个网站上发现了类似的问题,但解决方案在这里:

Is there any way to redirect stderr output from a command run with "start" in the Windows command line?

不起作用。我重定向winrs命令,但我需要重定向taskkill。 任何的想法? 感谢。

1 个答案:

答案 0 :(得分:0)

这完全没有经过考验,我对winrs一无所知。但我认为这只是重新定向适当次数的问题。假设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

我很惊讶您需要通过START启动WINRS。我本以为你可以直接执行命令,因为你计划等待它完成。如果直接启动,并且您希望在本地文件中收集输出,那么我认为您不需要任何转义。

winrs -r:NODENAME -u:USERNAME  -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f >output.txt

我很感激评论我的建议有哪些(如果有的话)。