このページでは、WinSCPのコマンドラインオプションについて説明しています。
WinSCPでは、実行ファイル(winscp.exe)をオプション付きで実行することで、WinSCPのさまざまな機能を直接実行できます。下記は基本的なオプションの例です。
winscp.exe <保存したセッション名> winscp.exe [(sftp|ftp|scp)://][ユーザー名[:パスワード]@]ホスト名[:ポート][/開くパス/[ファイル名]] winscp.exe [mysession] /synchronize [ローカルディレクトリ] [リモートディレクトリ「] [/defaults] winscp.exe [mysession] /keepuptodate [ローカルディレクトリ] [リモートディレクトリ] [/defaults] winscp.exe [mysession] /upload ファイル1 ファイル2 ファイル3 ... [/defaults] winscp.exe [mysession] [/privatekey=<秘密鍵ファイル>] [/hostkey=<鍵の指紋>] winscp.exe [mysession] [/passive] [/implicit|explicitssl|explicittls] winscp.exe [mysession] [/timeout=<行>] winscp.exe [/console] [/script=スクリプトファイル] [/command コマンド1 コマンド2 ...] [/parameter パラメータ1 ...] winscp.exe /ini=<iniファイル> /log=<ログファイル> winscp.exe /update winscp.exe /help
また、WinSCPにはコンソール機能を呼び出す「winscp.com」という実行ファイルも付属しています。winscp.comの基本的なオプションは下記のとおりです。
winscp.com [/script=スクリプトファイル] [/command コマンド1 コマンド2 ...] [/parameter パラメータ1 ...] winscp.com /ini=<iniファイル> /log=<ログファイル> winscp.com /help
WinSCPには、よく利用するサーバーやログイン名などを「セッション」として保存しておく機能があります。保存しておいたセッション名を引数にwinscp.exeを実行することで、WinSCPを起動してすぐに指定したセッションを呼び出すことができます。
たとえば、「foobar@example.net」という名前で保存しておいたセッションを呼び出す場合、次のようにします。
winscp.exe foobar@example.net
上記を実行すると、「ログイン」ウィンドウで「foobar@example.net」を選択してログインした場合と同じ操作が実行されます。
また、次のような形式でホスト名やユーザー名、パスワードなどを指定して任意のサーバーに接続することも可能です。
winscp.exe <プロトコル名><ユーザー名>:<パスワード>@<ホスト名>:<ポート>/<開くパス>/<ファイル名>
プロトコル名では「sftp://」および「ftp://」、「scp://」が利用可能です。たとえばsftpを利用し、「test」というユーザー名で「foobar.com」というホストに接続するには、次のようにします。
winscp.exe sftp://test@foobar.com
なお、パスが指定された場合は接続完了後自動的にそのパスに移動します。また、パスの末尾が「/」でない場合、そのファイルもしくはディレクトリのダウンロードを開始します。なお、特殊文字についてはURLエンコードした状態で渡すことが可能です。
また、WinSCPではコマンドラインオプションにより接続完了後に自動的に実行するコマンドを指定できますが、セキュリティ上の理由によりコマンドラインでプロトコルが指定された場合、自動実行は行われません。
上記に加え、オプションでいくつかの追加パラメータを指定することが可能です。
「/privatekey=<パス>」 オプションでは、SSHで使用する秘密鍵ファイルのパスを指定できます。
「/timeout=<秒>」オプションでは、タイムアウトするまでの時間を指定できます。
「/hostkey=<鍵の指紋>」オプションでは、接続先サーバーから渡されるべき鍵の指紋(fingerprint)を指定できます。
「/passive」オプションを指定すると、パッシブモードでのFTP接続を利用します。FTPプロトコルでのみ利用できます。
FTPSでの暗号化通信モードを指定するオプションです。
「/log=<ファイル名>」という形で、ログを指定したファイルに記録することができます。また、指定したファイル名の拡張子が「.xml」の場合、自動的にXML形式でのログ記録が行われます。
winscp.exe "My session" winscp.exe sftp://martin@example.com /hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" winscp.exe scp://test@example.com:2222 /privatekey=mykey.ppk winscp.exe ftps://martin@example.com /implicit /certificate="xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" winscp.exe martin@example.com /log="C:\winscp.log"
「/console」オプション付きでwinscp.exeを実行すると、コンソールモードでWinSCPが起動します。また、winscp.comを実行しても同じ結果が得られます。
「/script=<スクリプトファイル>」オプションでは、実行するスクリプトファイルを指定できます。このオプション付きでWinSCPを起動すると、起動直後に指定したスクリプトファイルが読み込まれて実行されます。
「/command」オプションでは、WinSCPの起動直後に実行するコマンドを指定できます。また、スクリプトもしくはコマンドの最後に「exit」コマンドがない場合は、指定したスクリプト/コマンドの実行後、そのままWinSCPが起動されたままになります。
「/parameter」オプションでは、スクリプトやコマンドに渡す引数を指定できます。
なお、「/console」オプションなしで「/script」や「/command」オプションを指定した場合でも、コマンドの実行結果は画面には表示されません。
winscp.com /script="C:\Documents and Settings\martin\Documents\myscript.txt" winscp.com /command "open ""My session"" -hostkey=""ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx""" winscp.com /command "open ""My session"" "put ""C:\Documents and Settings\martin\Documents\myfile.dat""" winscp.exe /console /script="myscript.txt"
「/syncronize」や「/keepupdate」、「/upload」、「/defaults」といったオプションを利用することで、特定の操作を素早く実行するショートカットを作成することができます。詳細はスクリプト処理を参照してください。
「/synchronize」および「/keepuptodate」オプション付きでWinSCPを起動すると、ローカルディレクトリとリモートディレクトリの同期などを実行できます。このとき、WinSCPの起動直後にオプション設定を行うダイアログが表示されます。
「/upload」オプションでは、指定したファイルのアップロードが可能です。この場合も、オプション設定ダイアログが表示されます。
「/defaults」オプションは、上記のオプションを利用する際に表示されるオプション設定ダイアログの表示を抑制するためのオプションです。おのオプションを指定すると、デフォルトの設定で各種操作が実行されます。
winscp.com /defaults /synchronize "C:\Documents and Settings\martin\Documents\MySite" /home/martin/public_html
「/ini=<iniファイルのパス>」オプションで、WinSCPの設定ファイル(iniファイル)を指定できます。もし存在しないファイルが指定された場合、新たに設定ファイルを作成します。
winscp.exe /ini="C:\Documents and Settings\martin\Documents\myconfig.ini"
「/update」オプション付きでWinSCPを起動すると、WinSCPのアップデートがあるかどうかを確認します。
「/help」オプション付きでWinSCPを起動すると、簡単なコマンドラインオプション解説が表示されます。
コマンドラインオプションとして空白(「 」)を含む値を指定する場合、値を「"」でくくって指定します。
winscp.exe /ini="C:\Documents and Settings\martin\Documents\myconfig.ini"
また、/commandオプションなどで「"」を含む文字列を指定する場合、文字列中の「"」を「""」に置き換えます。
winscp.com /command "open ""My session""" "put ""C:\Documents and Settings\martin\Documents\myfile.dat"""