我正在尝试从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驱动器中获得输出。
答案 0 :(得分:1)
两个想法:
E:\anurag.csv
代替E:/anurag.csv
使用cmd
来调用plink
,因为cmd
通常会处理重定向。将wsh.Run
行替换为:
command1 = command1 & ">E:\anurag.csv"
command1 = "cmd /c """ & command1 & """"
wsh.Run command1, 0, True
第一行完成您要执行的命令,第二行将其包含在cmd /c
调用中。
/c
上方的/c /s
更改为/Fa
每ReplyKeyboardRemove。YMMV - 未经测试