如何在 vbscript 变量中获取 Plink 命令响应?

How to get Plink command response in a vbscript variable?

我正在检查我在 Unix 目录中的文件数量,并且我试图在 VBScript 变量中获取该数量。

我的代码:

set oShell = CreateObject("WScript.Shell")
oShell.Run "C:\PLINK.EXE -ssh user@host -pw abc find /my/files -name '*333*' | wc -l > C:\files\res.txt"
set oShell = Nothing

以上代码没有写在.txt文件中。我在想我将使用 vbscript 读取 .txt 文件并获取计数。

有没有一种直接的方法可以在 vbscript 变量中获取从 wc -l 返回的计数。

谢谢。

您需要 shell (%comspec%) 才能获得 shell 功能,例如重定向(参见 here)。所以改变

oShell.Run "C:\PLINK.EXE -ssh user@host -pw abc find /my/files -name '*333*' | wc -l > C:\files\res.txt"

oShell.Run "%comspec% /c C:\PLINK.EXE -ssh user@host -pw abc find /my/files -name '*333*' | wc -l > C:\files\res.txt"

你检查过

之后
C:\PLINK.EXE -ssh user@host -pw abc find /my/files -name '*333*' | wc -l > C:\files\res.txt

'works' 来自控制台。

如果遇到问题,请研究 .Run (parameters, return value) and .Exec(Stdout/Stderr 捕获)的文档并进行简化(例如,没有 | wc -l)。