2017-04-19 11 views
0

以前にダウンロードされていないファイルのみをFTPサーバーからダウンロードします。私は現時点でWinSCPを使用しています。私は、今後のプロセスを自動化したいので、コンソールに行ってコードを書くことは望まない。現在のコードは次のとおりです。FTPサーバーから存在しないファイルをダウンロードする

"C:\Program Files (x86)\WinSCP\WinSCP.com"/command^
    "open ftp://rnan:[email protected]/kgptel/"^

    "lcd \D C:\Users\rnan\Desktop\Batch Files"^
    "get -latest *"^
    "exit" 

このコードは、コンソールでセッションを開くだけです。

私がコンソールに接続してコードを手動で入力することなくファイルを自動的に転送する変更を提案してください。

ありがとうございました。

答えて

0

主な問題は空白行です。 WinSCPの引数リストを終了するので、それを削除する必要があります(新しい行を読みやすくするには、新しい行を^でエスケープする必要があります)。

あなたはしかし、他の問題があります。

  • WinSCP lcd commandは、単一の引数を受け入れます。もしあなたがしたいのであれば、どんなWindowsのcd /Dでも、スイッチは必要ありません。 WinSCP lcdは、ドライブをそれ自身で切り替えます。
  • quote the argumentにはlcdにスペースが含まれている必要があります。 (それはあまりにもスペースなしで動作している間)
  • /commandの前にスペースがあるはずです
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command^
    "open ftp://rnan:[email protected]/kgptel/"^
    "lcd ""C:\Users\rnan\Desktop\Batch Files"""^
    "get -latest *"^
    "exit" 
私はすでにあなたを提案してきたように

、WinSCPのGUI generate a batch file template for youすることができます。

Generate download batch file

不足している唯一のものは-latestスイッチです。

+0

ありがとうございます、ありがとう、私は、バットファイルを実行すると、いくつかのエラーを言い、セッションが失敗したと言います。理由を知っていますか? winSCPによって生成されたバッチスクリプトでsetコマンドは何をする – qwerty

+0

'set'コマンドはWinSCP終了コードを変数に保存するので、' exit'コマンドで再利用できます。場合によっては、 'if' /' else'ブランチで(エラー・メールを送信するアプリケーションを使って)(https://winscp.net/eng/docs/guide_automation#results)といったもっと複雑なエラー処理を行います。 )、これは '%ERRORLEVEL%'をオーバーライドします。 –

+0

ありがとうございました! :D:Dあなたは上司です! – qwerty