运行 并使用 VBA 保存命令输出

Running and saving command output using VBA

我正在尝试 运行 shell 来自 VBA 的命令并将输出输出到 csv 文件中。下面是我使用的代码:

Dim wsh as Object
Set wsh = VBA.CreateObject("WScript.Shell")  
plink_path="C:\plink.exe"
key_path="putty key path"
pass_query="select * from test"
command1 = Replace(plink_path & " hadoop@11.11.11.11 -i " & key_path & " mysql -uuser -ppass -e 'use radar;" & pass_query & "'", Chr(10), " ")
wsh.Run command1 & ">E:/anurag.csv", 0, True

但是我无法查看E盘中的输出文件。当我 运行 从 cmd 提示手动执行上述命令时,我确实在 E 驱动器中得到了输出。

两个想法:

  1. 尝试 E:\anurag.csv 而不是 E:/anurag.csv
  2. 使用 cmd 调用 plink,因为 cmd 通常处理重定向。将 wsh.Run 行替换为:

    command1 = command1 & ">E:\anurag.csv"
    command1 = "cmd /c """ & command1 & """"
    wsh.Run command1, 0, True
    

    第一行完成您要执行的命令,第二行将其包装在 cmd /c 调用中。

    • 如果这不起作用,请尝试将上面的 /c 更改为 /c /sthis answer.

YMMV - 未测试