このページでは、マクロスクリプトやコンソールモードなどで利用できるWinSCPのコマンドについて説明しています。
WinSCPは以下で紹介するコマンドをサポートしています。また、「help」コマンドで同様のヘルプを参照することが可能です。
スペースを含むパラメータは、ダブルクォート(")で囲みます。また、パラメータにダブルクォートを使用したい場合は次のようにダブルクォート2つを続けることで代替します。
put "スペース付き ファイル名と""ダブルクォート"".html"
また、「%環境変数名%」という形でスクリプトから環境変数を参照できます。環境変数の値にスペースが含まれる可能性を考慮し、通常はダブルクォートで囲って利用します。次の例では、環境変数「FILE_TO_UPLOAD」の値を参照しています。
put "%FILE_TO_UPLOAD%"
スクリプトに引数を与え、それをスクリプト内で参照することもできます。スクリプトに引数を与えるには、「/parameter」オプションを使います。スクリプト内から引数にアクセスするには、「%N%」という形を用います。「N」は参照する引数を指定する整数で、たとえば1番目の引数を参照するなら「%1%」、2番目の引数なら「%2%」、のようになります。こちらも通常は次のようにダブルクォートで囲って利用します。
put "%1%"
なお、WinSCPではファイル名の大文字小文字を区別しますので、ファイル名をスクリプト内で指定する場合は注意してください。
SFTPおよびSCPの場合、リモート側でシェルコマンドを実行します。FTPの場合、FTPコマンドを実行します。
call <コマンド>
もし利用しているセッションでリモートコマンドの実行が制限されている場合、別のセッションが自動的にオープンされます。なお、このコマンドはユーザーの入力を受け付けるべきではありません。
エイリアス: !
XMLログ要素: call
例:
call mysqldump --opt -u USERNAME --password=PASSWORD --all-databases > all_databases.sql call gzip -c all_databases.sql > all_databases.gz
リモート側のカレントディレクトリを変更します。
cd [ <ディレクトリ> ]
もしディレクトリが省略された場合、ホームディレクトリをカレントディレクトリとします。
例:
cd /home/martin cd
リモートファイルのチェックサムを計算します。
checksum <アルゴリズム> <ファイル>
使用するチェックサム アルゴリズムの名前です。アルゴリズムの IANA 名を使用するか、サーバーがサポートする独自のアルゴリズムの名前を使用します (SFTP プロトコルのみ)。一般的にサポートされているアルゴリズムは、sha-1 と md5 です。
XMLログ要素: checksum
例
checksum sha-1 index.html
リモートファイルのパーミッションを変更します。
chmod <モード> <ファイル> [ <ファイル2> ... ]
モードは3桁もしくは4桁の8進数で指定します。ファイル名にはワイルドカードが使用できます。
XMLログ要素: chmod
例:
chmod 644 index.html about.html chmod 1700 /home/martin/public_html chmod 644 *.html
セッションを閉じます。
close [ <セッション> ]
指定したセッション番号のセッションを閉じます。セッション番号が指定されなかった場合は現在選択されているセッションを閉じます。
例:
close 1 close
リモートファイルを複製します。
cp <ファイル1> [ <ファイル2> ... ] [ <ディレクトリ>/ ][ <新しい名前> ]
宛先ディレクトリまたは新しい名前またはその両方を指定する必要があります。宛先ディレクトリはスラッシュで終わる必要があります。新しい名前の代わりに操作マスクを使用できます。ファイル名をワイルドカードに置き換えて、複数のファイルを選択できます。
コマンドに影響するオプション:failonnomatch
XMLログ要素:cp
例
cp index.html backup/ cp index.html *.bak cp index.html public_html/about.* cp public_html/index.html public_html/about.html /home/martin/*.bak
スクリプトの出力にメッセージを出力します。
echo <メッセージ>
例
echo すべてのレポート ファイルをアップロードしています...
すべてのセッションを閉じてプログラムを終了します。
exit
エイリアス: bye
リモートファイルをローカルディレクトリにダウンロードします。
get <ファイル> [ [ <ファイル2> ... ] <ディレクトリ>\[ <新しいファイル名> ] ]
getコマンドでは複数のファイルを同時にダウンロード可能です。もしパラメータが1つだけの場合、指定したファイルがローカル側のカレントディレクトリに保存されます。2つ以上のパラメータが指定された場合、最後のパラメータで指定したローカルディレクトリに指定したファイルが保存されます。保存先ディレクトリを指定する場合、ディレクトリ名の末尾が「\」である必要があります。また、ダウンロードしたファイルを別の名前で保存することもできます。なお、ファイル名の指定にはワイルドカードが利用できます。
optionコマンドも参照してください。
エイリアス: recv
オプション:
オプション名 | 説明 |
-delete | 転送後にダウンロードしたリモートファイルを削除します。excludeおよびincludeオプションは無視されます。 |
-resume | 可能であればレジュームを行います。SFTP/FTPでのみ利用可能で、-appendオプションと同時には使えません。 |
-append | ダウンロードしたファイルを、ローカルファイルの末尾に追加します。SFTPでのみ利用できます。-resumeオプションと同時には使えません |
-preservetime | タイムスタンプを変更しません |
-nopreservetime | タイムスタンプを変更します |
-speed=<kibps> | 転送速度を制限します |
getコマンドに影響するオプションは次のとおりです。
transfer, confirm, exclude(-deleteには影響しません), include(-deleteには影響しません), reconnecttime
XMLログ要素: download, rm (-deleteオプション)
例:
get index.html get -delete index.html about.html .\ get index.html about.html d:\www\ get public_html/index.html d:\www\about.* get *.html *.png d:\www\*.bak
変更されたファイルのみをダウンロードするsynchronizeコマンドも参照してください。
ヘルプを表示します。
help [ <コマンド> [ <コマンド2> ... ] ]
パラメータなしで実行すると、コマンド一覧が表示されます。また、パラメータとして特定のコマンドを指定すると、そのコマンドのヘルプを参照できます。
エイリアス: man
例:
help ls help
ローカルディレクトリの変更を監視し、変更されたファイルをリモートディレクトリにアップロードして反映させます。
keepuptodate [ <ローカルディレクトリ> [ <リモートディレクトリ> ] ]
ディレクトリが指定されなかった場合、カレントディレクトリが対象となります。Ctrl-Cで監視を終了できます。
注:ファイルが上書きされる場合でも確認は行われません
オプション:
オプション | 説明 |
-delete | 存在しないファイルは削除します |
-permissions=<mode> | パーミッションを指定します |
-nopermissions | デフォルトのパーミッションを使用します |
-speed=<kibps> | 転送速度を制限します |
keeptoupdateコマンドに影響する オプションは次の通りです。
transfer, exclude, include, reconnecttime
XMLログ要素: upload, touch, chmod (-permissionsオプション付きの場合), rm (-deleteオプション付きの場合)
例:
keepuptodate -delete keepuptodate d:\www /home/martin/public_html
ローカルのカレントディレクトリを変更します。すべてのセッションに影響します。
lcd <ディレクトリ>
例:
lcd d:\
ローカルディレクトリ内のファイル一覧を表示します。
lls [ <ディレクトリ> ]\[ <ワイルドカード> ]
ディレクトリが省略された場合、カレントディレクトリが対象となります。ワイルドカードで表示するファイルを絞り込むことも可能です。
エイリアス: ll
例:
lls *.html lls d:\ lls
リモートディレクトリ内にシンボリックリンクを作成します。
ln <target> <symlink>
エイリアス: symlink
例:
ln /home/martin/public_html www
ローカルのカレントディレクトリ名表示します。
lpwd
指定したディレクトリ内のファイル一覧を表示します。
ls [ <ディレクトリ> ]/[ <ワイルドカード> ]
リモートディレクトリ内の詳細なファイル一覧を表示できます。ディレクトリ名が指定されなかった場合、リモートのカレントディレクトリが対象となります。ワイルドカードで表示するファイルを絞り込むこともできます。
エイリアス: dir
XMLログ要素: ls
例:
ls *.html ls /home/martin ls
リモートディレクトリを作成します。
mkdir <ディレクトリ>
XMLログ要素: mkdir
例:
mkdir public_html
リモートファイルを移動もしくはリネームします。
mv <ファイル> [ <ファイル2> ... ] [ <ディレクトリ>/ ][ <新しいファイル名> ]
移動先ディレクトリもしくは新しいファイル名の少なくともいっぽうは指定されている必要があります。移動先ディレクトリを指定する場合、ディレクトリ名は「/」で終わっている必要があります。新しいファイル名の代わりにOperation maskを使用することもできます。また、ワイルドカード]を使用して複数のファイルを選択することも可能です。
エイリアス: rename
XMLログ要素: mv
例:
mv index.html public_html/ mv index.html about.* mv index.html public_html/about.* mv public_html/index.html public_html/about.html /home/martin/*.bak mv *.html /home/backup/*.bak
指定したホストに接続します。
open <セッション名> open [ sftp|ftp|scp:// ][ <ユーザー名>[:パスワード]@]<ホスト名>[:<ポート番号>]
引数には保存されたセッション名を指定できるほか、ホスト名およびユーザー名、ポート番号、プロトコルなどを指定して接続を行うことも可能です。
オプション:
オプション | 説明 |
-privatekey=<秘密鍵ファイル> | 秘密鍵のパス |
-timeout=<秒> | タイムアウトまでの秒数 |
-hostkey="<鍵の指紋>" | 接続を許可するホスト側の公開鍵の指紋を指定。「;」で区切って複数の指紋を指定することも可能。指紋にはスペースが含まれるので、「"」で囲んで指定する。SFTPおよびSCPでのみ利用可能 |
-certificate="<鍵の指紋>" | SSL/TLS認証において接続を許可するホスト側の認証情報を指定。「;」で区切って複数を指定することも可能。これにより、WinSCPでは自動的に認証を受け付けることが可能。FTPSでのみ利用可能 |
-passive | パッシブモードでの接続を行う。FTPでのみ利用可能 |
-implicit | Implicit TLS/SSL認証を使用。FTPSでのみ使用可能 |
-explicitssl | Explicit SSL認証を使用。FTPS protocolでのみ使用可能 |
-explicittls | Explicit TLS認証を使用。FTPS protocolでのみ使用可能 |
XMLログ要素: session
例:
open sftp://martin@example.com -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" open scp://test@example.com:2222 -privatekey=mykey.ppk open 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" open martin@example.com open example.com open
オプションの設定および確認を行います。
option [ <オプション> [ <値> ] ]
もしパラメータを付けずに実行すると、現在のオプション設定一覧が表示されます。もしオプションを指定して実行すると、指定したオプションの現在の値が表示されます。オプションおよび値を指定して実行すると、そのオプションを指定した値に設定します。ここで変更したオプションの値は保存されません。
設定できるオプション are:
オプション名 | 値 | 説明 |
echo | on/off | コマンドの実行時にローカルエコーを表示するかを設定します |
batch | on/off/abort/continue | バッチの実行モードを設定します。バッチモードをOnにすると、問い合わせが必要な処理については自動的に「いいえ」が選択されたものとして自動実行されます。Onに設定する場合、ファイルの上書きを防ぐためにconfirmオプションをoffにしておくことを推奨します。「abort」に設定すると、エラー発生時に自動的に処理が中断されるようになります。「continue」に設定すると、エラーが発生しても処理は継続されます。 |
confirm | on/off | ファイルの上書きなどの確認メッセージを行うかどうかを設定します。getおよびputコマンドに影響します。 |
transfer | binary/ascii/automatic | 転送モードを指定します。「automatic」を選択すると、ファイルの拡張子によって自動的に転送モードが選択されます。getおよび put、 synchronize、keepuptodateコマンドに影響します。 |
exclude、include | clear/<マスク>\[;<マスク2>...\] | 処理対象とするファイルを指定します。script_commands#get|get、put、synchronize、keepuptodateコマンドに影響します。 |
reconnecttime | off/<秒> | ここで指定した時間だけ反応がなかった場合、セッションが切断されたと見なして再接続を行います。get、put、synchronize、keepuptodate コマンドに影響します。 |
failonnomatch | off/on | 操作対象のファイルを選択するために使用されるワイルドカードが一致するファイルがない場合、またはディレクトリ同期で違いが見つからない場合に、コマンドが失敗するかどうかを切り替えます。get、put、rm、mv、chmod、ls、lls、synchronizeコマンドに影響します。 |
エイリアス: ascii(asciiモードでの転送に切り替え)、binary(binaryモードでの転送に切り替え)
例:
option transfer option confirm off option include "*.html; */" option exclude "*.tpl.php" option exclude "*.mp3; *.mp4; *.lnk; *.exe; *.msi; My Pictures; My Music; My Videos;" option
注:オプションの再設定を行った場合、値は上書きされ以前の値はリセットされます。
ファイルのアップロードを行います。
put <ファイル> [ [ <ファイル2> ... ] <ディレクトリ>/[ <新しいファイル名> ] ]
putコマンドでは複数のファイルを同時にアップロード可能です。もしパラメータが1つだけの場合、指定したファイルをリモート側のカレントディレクトリにアップロードします。2つ以上のパラメータが指定された場合、最後のパラメータで指定したリモートディレクトリに指定したファイルをアップロードします。保存先ディレクトリを指定する場合、ディレクトリ名の末尾が「/」である必要があります。また、指定したファイルを別の名前でアップロードすることもできます。なお、ファイル名の指定にはワイルドカードが利用できます。
optionコマンドも参照してください。
オプション:
オプション名 | 説明 |
-delete | 転送後にローカルディレクトリからアップロードしたファイルを削除します。excludeおよびincludeオプションは無視されます。 |
-resume | 可能であればレジュームを行います。SFTP/FTPでのみ利用可能で、-appendオプションと同時には使えません。 |
-append | アップロードしたファイルを、指定したファイルの末尾に追加します。SFTPでのみ利用できます。-resumeオプションと同時には使えません |
-preservetime | タイムスタンプを変更しません |
-nopreservetime | タイムスタンプを変更します |
-permissions=<モード> | パーミッションを指定します。SFTP/SCPでのみ使用できます |
-nopermissions | デフォルトのパーミッションでアップロードします |
-speed=<kibps> | 転送速度を制限します |
エイリアス: send
putコマンドに影響するオプションは次のとおりです。
transfer, confirm, exclude(-deleteには影響しません), include(-deleteには影響しません), reconnecttime
XMLログ要素: upload, chmod(-permissionsオプション付きの場合)、touch(-preservetimeオプション付きの場合)
例:
put index.html put -delete index.html about.html ./ put -permissions=644 index.html about.html /home/martin/public_html/ put d:\www\index.html about.* put *.html *.png /home/martin/backup/*.bak
変更されたファイルのみを転送するには、synchronizeコマンドを参照してください。
アクティブなセッションのリモート側カレントディレクトリを表示します。
pwd
リモート側のファイルを削除します。
rm <ファイル> [ <ファイル2> ... ]
もしリモート側ゴミ箱が設定されている場合、ファイルを削除する代わりに設定されたゴミ箱ディレクトリにファイルが移動されます。ワイルドカードで複数のファイルを指定することも可能です。
XMLログ要素: rm
例:
rm index.html rm index.html about.html rm *.html
リモート側のディレクトリを削除します。
rmdir <ディレクトリ> [ <ディレクトリ2> ... ]
もしリモート側ゴミ箱が設定されている場合、ファイルを削除する代わりに設定されたゴミ箱ディレクトリにファイルが移動されます。
XMLログ要素: rm
例:
rmdir public_html
セッションの切り替えや表示を行います。
session [ <セッション> ]
番号で指定したセッションをアクティブセッションに切り替えます。もしセッション番号が指定されなかった場合、現在のセッション一覧を表示します。
例:
session 1 session
リモート ファイルの属性を取得します。
stat <ファイル名>
自動化する際、このコマンドでファイルの存在を確認することができます。
XMLログ要素: stat
ディレクトリの同期を行います。
synchronize local|remote|both [ <ローカルディレクトリ> [ <リモートディレクトリ> ] ]
もし「local」オプションを指定した場合、リモートディレクトリからローカルディレクトリへの同期が実行されます。「remote」オプションを指定した場合、ローカルディレクトリからリモートディレクトリへの同期が実行されます。「both」オプションを指定した場合、ローカルディレクトリとリモートディレクトリの両方が同期されます。
ディレクトリが指定されなかった場合、カレントディレクトリが同期対象となります。
注:このコマンドではファイルの上書きに関する警告を行いません。
オプション:
オプション | 説明 |
-delete | 同期元にないファイルを同期先から削除します。「both」モードでは無視されます |
-mirror | ミラーモード(古いファイルについても同期される)で実行します。「both」モードでは無視されます。 |
-criteria=<基準> | 同期のための比較基準を指定します。「time」「size」「either」(以前のバージョンでは「both」でした。「both」モードは無視されます)「none」が選択できます。 |
-permissions=<モード> | ファイル保存時のパーミッションを指定します |
-nopermissions | デフォルトのパーミッションでファイルを保存します |
-speed=<kibps> | 転送速度を制限します |
コマンドに影響する オプションは次の通りです。
transfer, exclude, include, reconnecttime
XMLログ要素: download、upload、touch、chmod、rm
例:
synchronize remote -delete synchronize both d:\www /home/martin/public_html