WinSCPをコマンドラインで使うメリット

WinSCPは様々な方法でFTP・SFTP・FTPS接続できるFTPクライアントソフトであり、GUI画面でファイル操作などを行うことが多いでしょう。
ですが、グラフィカルなウィンドウを使わないコマンドラインモードが用意されていることを知ってるでしょうか?
コマンドラインモードの場合は、真っ黒な画面でテキストのみで操作することになるので、一見すると使いづらいと感じるかもしれません。
ですが一度慣れてしまえば、
- バッチファイル・マクロを作成してファイル操作を自動化
- ほかのソフトウェアなどと組み合わせて自動実行
- マウスを使わないFTP操作
テキストのみで操作するためコマンドライン操作を今までしたことがない人からすると少し難しいかもしれませんが、慣れてしまうと非常に便利なコマンドラインのメリットでもあります。
WinSCPをコマンドラインで使う方法
WinSCPをコマンドラインで使う方法は難しくありませんが、使いやすくするためには事前準備が必要です。
WinSCPをコマンドラインで起動しやすい環境を作る
詳しいやり方は解説しますがWinSCPのコマンドライン操作はWindows 10標準のコマンドプロンプトを使います。

ですが、初期状態のままだとWinSCPのexeファイルを実行しようとしても、環境パス設定がされていないためうまく実行できません。
まずはWinSCPを環境バスに登録していきましょう。

まずはタスクバーの検索ボックスに「システムの詳細設定」と入力し、「システムの詳細設定の表示」を開いてください。

開いたら右下にある[環境変数]をクリックします。

「Path」を選択状態して[編集]をクリックします。

次に、右側の[新規]をクリックしてください。

するとテキスト入力欄が表示されるので、そこに「C:Program Files (x86)WinSCP」を入力してください。
WinSCPをインストールした際、デフォルトのインストール先から変更していた場合は、フォルダパスが異なるので注意しましょう。
入力し終わったら[OK]を押して設定画面を閉じてください。設定し終わった後にコマンドプロンプトを開きましょう。
環境変数の設定変更は新しく開いたコマンドプロントで有効化されるので、既に開いているコマンドプロンプトがある場合は一度閉じるようにしてください。

コマンドプロンプトを起動したら「winscp.exe」と入力し、エンターを押してください。WinSCPが起動するはずです。
起動しなかった場合は環境パスの設定を間違えているのでもう一度設定を見直してください。
これでWinSCPをコマンドラインで使いやすくする環境づくりが完了しました。ですが、先程の起動方法ではコマンドラインで操作することができません。
winscp.exe /console
コマンドラインで操作する場合は、起動時に「/console」オプションを付け加えることでコマンドラインモードでWinSCPを起動できます。
コマンドラインモードで起動する場合は「/console」オプションを忘れないようにしましょう。
WinSCPをコマンドラインの文法一覧

WinSCPのオプションはいくつかありますので、書き方もあわせてそれぞれ見ていきましょう。
/privatekey
SSH接続する場合、SSHキーが記載されたファイルを指定できます。
winscp.exe /console /privatekey=ファイルパス
/timeout
サーバーとの接続タイムアウトの時間を起動時に設定できます。
winscp.exe /console /timeout=秒
/hostkey
接続先サーバーがフィンガープリントを利用している場合、そのフィンガープリントを指定できます。
winscp.exe /console /hostkey=フィンガープリント文字列
/passive
パッシブモードでFTP接続する際にこのオプションを使用します。
winscp.exe /console /passive
/log
このオプションを加えるとすべての操作がログに記録され、指定したファイルに書き出されます。
winscp.exe /console /log=出力先ファイルパス
WinSCPをコマンドラインで使ってみる
続いては、実際にコマンドライン操作でサーバー接続やファイルアップロードなどを行う方法を見ていきましょう。
サーバーへの接続
サーバーへの接続方法はたくさんありますが、事前にWinSCPに保存済みのセッション情報を使う方法が一番簡単かつ効率的です。
やり方はカンタンで、WinSCP起動時にセッション名を与えるだけです。
winscp.exe /console セッション名
セッション名に空白が入る場合はダブルクォーテーション「"」で囲むようにしましょう。

セッション名に間違いがなければ、WinSCPコマンドライン起動直後に自動的に接続されます。
現在のフォルダの中身を確認する
現在参照しているフォルダの構成を確認したい場合は「ls」コマンドを使用します。

ダウンロードしたいファイルの名前がわからない、フォルダの名前がわからない場合はlsコマンドでチェックしましょう。
フォルダを移動する
WinSCPで接続先のフォルダを変更する場合はcdコマンドを使用します。
cdコマンドでダウンロードしたいフォルダまで移動すると良いでしょう。
ファイルのダウンロード
ファイルのダウンロードはgetコマンドを使います。
get ファイルパス...複数可
フォルダパスさえ間違えなければ、今現在参照しているフォルダ以外のファイルをダウンロードすることがも能です。
ファイルのアップロード
ファイルアップロードはputコマンドを使用します。
put アップロードするファイル名 アップロード先フォルダ アップロード後のファイル名
アップロードするファイル名と、アップロード先フォルダ名さえあればアップロード可能です。ファイル名にワイルドカードを使用することができるため、連番ファイルを一括でアップロードということも可能です。
WinSCPのヘルプを見る
WinSCPにはファイルのアップロードやダウンロード以外にも、プロキシ設定などたくさんのコマンドやオプションが用意されています。
それらは全て確認したい場合はhelpコマンドを使用しましょう。
help

「help」だけだと全てのコマンドの詳細が表示されてしまって見づらくなってしまいますが、「help コマンド名」とするとそのコマンドのヘルプのみを確認できます。
コマンド名やオプションは多すぎて忘れやすいですが、helpコマンドさえ覚えておけば調べなおすことがカンタンですので、最低限helpコマンドの存在は忘れないようにしましょう。