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

时间:2016-12-07 12:51:35

标签: vba cmd io-redirection wsh

我正在尝试从VBA运行shell命令并将输出输出到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 个答案:

答案 0 :(得分:1)

两个想法:

  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调用中。

  3. YMMV - 未经测试