2016-12-07 18 views
1

VBAからシェルコマンドを実行し、csvファイルに出力しようとしています。以下は私が使用しているコードです:VBAを使用したコマンド出力の実行と保存

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 & " [email protected] -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

をテストしていません、[このようなものかもしれない](https://msdn.microsoft.com/en-us/library/cbxxzwb5(V = vs.84).aspx)を使用すると便利です。 – Comintern

答えて

1

つの思考:

  1. cmdは通常、リダイレクトを処理するので、plinkを起動する代わりにE:/anurag.csv
  2. 利用cmdE:\anurag.csvをお試しください。 wsh.Run行を置き換えます

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

    最初の行は、あなたが実行したいコマンドを完了し、第二はcmd /cコールでそれをラップします。これが機能しない場合

    • this answerあたり/c /sに上記の/cを変更してみてください。

YMMV - それはSTDOUTに出力を送信した場合

+0

私はcommand1 = "cmd/c" ""&command1& "" ""を使用すると完全に機能しました。 – anurag

関連する問題