我必须在集群上执行一个命令来杀死一组进程。
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f我不能重定向输出。我在这个网站上发现了类似的问题,但这里的解决方案是:
不起作用。我重定向winrs命令,但我需要taskkill的重定向。有什么想法吗?谢谢。
发布于 2014-03-14 19:41:08
这是完全未经测试的,而且我对winrs一无所知。但我相信这只是一个逃避重定向的适当次数的问题。假设n是转义次数,那么所需的插入符号数是2的n次方减1 ((2^n)-1)。
如果希望将输出重定向到远程计算机上的文件,则必须延迟重定向,直到WINRS启动远程进程,因此重定向必须延迟两次,一次用于启动,一次用于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如果我的建议中有哪些是有效的,我将不胜感激。
https://stackoverflow.com/questions/22400343
复制相似问题