我遇到了SSH,plink,find命令和.bat执行的奇怪问题。
我想通过putty / plink查看我所有远程计算机上的setup.txt文件以获取特定字符串。 (大约50-400个putty SSH会话,取决于我的环境)
@ECHO off
SETLOCAL EnableDelayedExpansion
(...)
SET searchPattern="1234567890"
SET fileToCheck="C:\foo\bar\setup.xml"
(...)
:SEARCH_PATTERN
plink -load !session! -l user -pw password find /c /i %searchPattern% %fileToCheck%>>result.txt
(...)
预先填充变量会话,并包含putty的ssh会话名称。块:然后为每个会话执行SEARCH_PATTERN。在(...)发生了更多的事情,这些事情很好但是 find 命令的执行不起作用。
如果我手动执行此操作,请打开putty,输入find / c / i" 1234567890" " C:\ foo \ bar \ setup.xml">> result.txt一切正常但只要我在.bat文件中通过plink执行相同的命令我就会得到FIND:格式错误。我做了很多谷歌搜索,仍然没有让它工作,我当然不想手动为400台远程机器执行cmd。
有人可以帮我吗?提前谢谢。
答案 0 :(得分:0)
双引号在路上某处丢失。
所以这会在服务器上执行:
find /c /i 1234567890 C:\foo\bar\setup.xml
find
请求模式周围的双引号。
似乎用反斜杠转义双引号会有所帮助。
plink -load session -l user -pw password find /c /i \"1234567890\" "C:\foo\bar\setup.xml"