2016-10-25 30 views
1

ローカルファイルをSFTPサイトにアップロードするWinSCPスクリプトを作成しました。スクリプトは.TXTに保存されます。Excel VBAを使用してWinSCPスクリプトを実行するにはどうすればよいですか?

WinSCP.com 
open sftp://username:[email protected] 
cd /export/home/Desktop/Temp 
put C:\Users\Dekstop\JPMC\a.xlsx 
close 
exit 

は、その後、私はthis postを見て、ExcelのVBAにこのコードを記述します。

Sub RunWinScp() 
Call Shell("C:\Program Files (x86)\WinSCP\WinSCP.com /ini=nul/script=C:\Users\Desktop\WinSCPGetNew.txt") 
End Sub 

しかし、私はそれを実行しようとすると、何も起こりません。エラーはありませんが、ファイルは正しく転送されません。誰かが助けてくれますか?

ありがとうございます!それはスペース

  • が含まれているとして、あなたはwinscp.comを削除するには、/ini=nul/script=...
  • Call Shell("""C:\Program Files (x86)\WinSCP\WinSCP.com"" /ini=nul /script=C:\Users\Desktop\WinSCPGetNew.txt") 
    
    • の間のスペースを必要とし、二重引用符でwinscp.comへのパスを囲む必要があり

    +0

    あなたはおそらく、コマンドラインパラメータの間にスペースが必要になります。 '/ini = nul/script = 'となります。 – Comintern

    +0

    アドバイスをいただきありがとうございます。スペースを入れようとしましたが、まだ動作しません。他の考え? – vivi11130704

    +0

    'C:\ Users \ Desktop \ JPMC \ a.xlsx'は有効なパスですか? 'C:\ Users \ JPMC \ Desktop \ a.xlsx'(JPMCがあなたのユーザ名であることを前提とします) – ThunderFrame

    答えて

    1
    • WinSCPGetNew.txtスクリプトの冒頭にあります。 WinSCPにはwinscp.comコマンドがありません。既にWinSCP.comをVBAのShell関数で実行しています。これは実際にあなた自身にリンクしている質問ですでにカバーされています:Using VBA to run WinSCP script

    あなたはより良い別のコマンドファイルのために必要性を回避するために/command switchを使用してWinSCPのコマンドラインでコマンドを指定しますが:

    Call Shell(_ 
        """C:\Program Files (x86)\WinSCP\WinSCP.com"" " + _ 
        "/ini=nul " + _ 
        "/command " + _ 
        """open sftp://username:[email protected]/"" " + _ 
        """cd /export/home/Desktop/Temp"" " + _ 
        """put C:\users\Desktop\JPMC\a.xlsx"" " + _ 
        """close"" " + _ 
        """exit""") 
    
    +0

    フィードバックありがとうございます。私はあなたが推奨するように弾丸2と3を変更しました。箇条書き1については、すべてを二重引用符で囲んでみました。Call Shell( "" C:\ Program Files(x86)\ WinSCP \ WinSCP.com/ini = nul/script = C:\ Users \ Desktop \ WinSCPGetNew.txt "" "")、VBAはこの行を赤で強調表示しました。何かご意見は? – vivi11130704

    +0

    あなたにはあまりにも多くの引用符があります。とにかく構文が間違っています。引用符はパスの周りになければなりません!答えに投稿したコードを使用してください。 –

    +0

    ありがとうございます。私はtxtファイルからwinscp.comを削除し、スペースを追加し、あなたのコードの両方をコピーしましたが、まだ終了しませんでした...まだエラーメッセージは出力されません。それを得る... – vivi11130704

    関連する問題