我必须在集群上执行命令来杀死一组进程。
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f
我无法重定向输出。我在这个网站上发现了类似的问题,但这里的解决方案:
有没有办法从 Windows 命令行中使用“start”运行的命令重定向 stderr 输出?
不起作用。我重定向 winrs 命令,但我需要 taskkill 的重定向。任何想法?谢谢。
我必须在集群上执行命令来杀死一组进程。
start /wait winrs -r:NODENAME -u:USERNAME -p:PASSWORD taskkill /FI \"USERNAME eq USER" /f
我无法重定向输出。我在这个网站上发现了类似的问题,但这里的解决方案:
有没有办法从 Windows 命令行中使用“start”运行的命令重定向 stderr 输出?
不起作用。我重定向 winrs 命令,但我需要 taskkill 的重定向。任何想法?谢谢。
这是完全未经测试的,我对胜利者一无所知。但我相信这只是逃避重定向正确次数的问题。假设 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
如果有的话,我将不胜感激我的建议是否有效。