WinSCPのGUIをつかって手動でファイルをダウンロードするのが、手間だと感じる時があれば、それは、WinSCPコマンドラインの出番です。
WinSCPにはWinSCP.comというコマンドラインのオプションがあります。
コマンドラインを使えれば、batファイルを作成して、タスクスケジューラーで定期実行させることもできますし、イベントトリガーで実行させることもできます。
以下、サンプルコードです。
いろいろなやり方がありますが、一例として、
接続先サーバからファイルをgetする処理を記載しています。
@REM
@echo off
cls
echo START
echo.
echo cd /zzz/xxx > SCPcom.scp
echo lcd "C:\xxx/zzz" >> SCPcom.scp
echo bin >> SCPcom.scp
echo get vvv >> SCPcom.scp
echo close >> SCPcom.scp
echo exit >> SCPcom.scp
"C:\Program Files\WinSCP\WinSCP.com" /ini="C:\Program Files\WinSCP\WinSCP.ini" [WinSCPName] /console /script=.\SCPcom.scp
echo.
echo ScriptEnd
echo.
exit
###処理の流れ
①ファイル(ここでは"SCPcom.scp"としています)に、実行したいコマンドを書き込みます。
②WinSCP.comを使用して、①で作ったファイルを読み込んで実行する。
流れは上記のように単純です。
変更箇所と注意点を見ていきましょう。
###変更箇所
- cd,lcd の箇所は、リモート先、ローカルのディレクトリを指定しましょう。
- bin はバイナリモードの指定です。必要に応じて変更しましょう。
- get でファイルをゲットしてきます。対象ファイル名を書きましょう。
- close,exit で接続を終了します。
- "C:\Program Files ではじまる次の行で、いよいよWinSCP実行です。WinSCP.comのファイル、iniファイルのパスを指定します。
- [WinSCPName] には、WinSCPのGUIで設定した、接続先の設定名を記載しましょう。
- script= は、コマンドをリダイレクトで書き込んだファイルを指定します。
###注意点
- 基本的にはbatファイルとして実行しますので、書き方はそれに準じる形でOKです。
- コマンド用のファイルに書き込むので、リダイレクト( > もしくは >> )を使ってファイルへ書き込んでいきます。
他にも様々なコマンドラインがあります。
詳細はこのページなどを参照してください。
###さいごに
WinSCPやFTPはファイル操作をするときに、非常に多く利用すると思いますが、
ある程度、固定的な内容であれば、自動化したほうが良いでしょう。
スクリプトを組む時間はかかりますが、その後は、ボタンひとつで、もしくは自動実行で作業できてしまうことでしょう!