我正在尝试向我的esx服务器抛出一个plink命令并grep命令的linux输出。上面的代码不起作用。但是,如果我删除| grep部分它再次工作。有没有其他方法可以实现相同的结果,但使命令可以通过cmd.exe传递?
FOR /F "TOKENS=1 DELIMS=:" %%A IN ('TYPE %SYSTEMDRIVE%\Users\Ian\Desktop\backup.list') DO ECHO %%A & (FOR /F "TOKENS=2*" %%B IN ('%PLINK% -batch -ssh %USERNAME%@%ESXHOST% -pw %PASSWORD% vim-cmd vmsvc/get.datastores %%A | grep datastore') DO ECHO %%B)
答案 0 :(得分:1)
只是看着它(目前没有plink.exe进行测试),问题似乎是|
被cmd.exe解释而不是作为参数字符串的一部分传递给plink.exe。
如果这个猜测是正确的,那么这是一个简单的解决方法:只需在|
前面加^
即可逃避%%A | grep
,以便%%A ^| grep
变为{{1}}。< / p>