コマンドリファレンス

このページでは、マクロスクリプトやコンソールモードなどで利用できるWinSCPのコマンドについて説明しています。

スクリプトコマンド

WinSCPは以下で紹介するコマンドをサポートしています。また、「help」コマンドで同様のヘルプを参照することが可能です。

スクリプトの文法

スペースを含むパラメータは、ダブルクォート(")で囲みます。また、パラメータにダブルクォートを使用したい場合は次のようにダブルクォート2つを続けることで代替します。

put "スペース付き ファイル名と""ダブルクォート"".html"

また、「%環境変数名%」という形でスクリプトから環境変数を参照できます。環境変数の値にスペースが含まれる可能性を考慮し、通常はダブルクォートで囲って利用します。次の例では、環境変数「FILE_TO_UPLOAD」の値を参照しています。

put "%FILE_TO_UPLOAD%"

スクリプトに引数を与え、それをスクリプト内で参照することもできます。スクリプトに引数を与えるには、「/parameter」オプションを使います。スクリプト内から引数にアクセスするには、「%N%」という形を用います。「N」は参照する引数を指定する整数で、たとえば1番目の引数を参照するなら「%1%」、2番目の引数なら「%2%」、のようになります。こちらも通常は次のようにダブルクォートで囲って利用します。

put "%1%"

なお、WinSCPではファイル名の大文字小文字を区別しますので、ファイル名をスクリプト内で指定する場合は注意してください。

call

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 [ <ディレクトリ> ]

もしディレクトリが省略された場合、ホームディレクトリをカレントディレクトリとします。

例:

cd /home/martin
cd

checksum

リモートファイルのチェックサムを計算します。

  checksum <アルゴリズム> <ファイル>

使用するチェックサム アルゴリズムの名前です。アルゴリズムの IANA 名を使用するか、サーバーがサポートする独自のアルゴリズムの名前を使用します (SFTP プロトコルのみ)。一般的にサポートされているアルゴリズムは、sha-1 と md5 です。

XMLログ要素: checksum

checksum sha-1 index.html

chmod

リモートファイルのパーミッションを変更します。

  chmod <モード> <ファイル> [ <ファイル2> ... ]

モードは3桁もしくは4桁の8進数で指定します。ファイル名にはワイルドカードが使用できます。

XMLログ要素: chmod

例:

chmod 644 index.html about.html
chmod 1700 /home/martin/public_html
chmod 644 *.html

close

セッションを閉じます。

  close [ <セッション> ]

指定したセッション番号のセッションを閉じます。セッション番号が指定されなかった場合は現在選択されているセッションを閉じます。

例:

close 1
close

cp

リモートファイルを複製します。

  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 <メッセージ>

echo すべてのレポート ファイルをアップロードしています...

exit

すべてのセッションを閉じてプログラムを終了します。

  exit

エイリアス: bye

get

リモートファイルをローカルディレクトリにダウンロードします。

  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

ヘルプを表示します。

  help [ <コマンド> [ <コマンド2> ... ] ]

パラメータなしで実行すると、コマンド一覧が表示されます。また、パラメータとして特定のコマンドを指定すると、そのコマンドのヘルプを参照できます。

エイリアス: man

例:

help ls
help

keepuptodate

ローカルディレクトリの変更を監視し、変更されたファイルをリモートディレクトリにアップロードして反映させます。

  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 <ディレクトリ>

例:

lcd d:\

lls

ローカルディレクトリ内のファイル一覧を表示します。

  lls [ <ディレクトリ> ]\[ <ワイルドカード> ]

ディレクトリが省略された場合、カレントディレクトリが対象となります。ワイルドカードで表示するファイルを絞り込むことも可能です。

エイリアス: ll

例:

lls *.html
lls d:\
lls

ln

リモートディレクトリ内にシンボリックリンクを作成します。

  ln <target> <symlink>

エイリアス: symlink

例:

ln /home/martin/public_html www

lpwd

ローカルのカレントディレクトリ名表示します。

  lpwd

ls

指定したディレクトリ内のファイル一覧を表示します。

  ls [ <ディレクトリ> ]/[ <ワイルドカード> ]

リモートディレクトリ内の詳細なファイル一覧を表示できます。ディレクトリ名が指定されなかった場合、リモートのカレントディレクトリが対象となります。ワイルドカードで表示するファイルを絞り込むこともできます。

エイリアス: dir

XMLログ要素: ls

例:

ls *.html
ls /home/martin
ls

mkdir

リモートディレクトリを作成します。

  mkdir <ディレクトリ>

XMLログ要素: mkdir

例:

mkdir public_html

mv

リモートファイルを移動もしくはリネームします。

  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 <セッション名>
  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

オプションの設定および確認を行います。

  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および putsynchronizekeepuptodateコマンドに影響します。
exclude、include clear/<マスク>\[;<マスク2>...\] 処理対象とするファイルを指定します。script_commands#get|getputsynchronizekeepuptodateコマンドに影響します。
reconnecttime off/<秒> ここで指定した時間だけ反応がなかった場合、セッションが切断されたと見なして再接続を行います。getputsynchronizekeepuptodate コマンドに影響します。
failonnomatch off/on 操作対象のファイルを選択するために使用されるワイルドカードが一致するファイルがない場合、またはディレクトリ同期で違いが見つからない場合に、コマンドが失敗するかどうかを切り替えます。getputrmmvchmodlsllssynchronizeコマンドに影響します。

エイリアス: 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

ファイルのアップロードを行います。

  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

アクティブなセッションのリモート側カレントディレクトリを表示します。

  pwd

rm

リモート側のファイルを削除します。

  rm <ファイル> [ <ファイル2> ... ]

もしリモート側ゴミ箱が設定されている場合、ファイルを削除する代わりに設定されたゴミ箱ディレクトリにファイルが移動されます。ワイルドカードで複数のファイルを指定することも可能です。

XMLログ要素: rm

例:

rm index.html
rm index.html about.html
rm *.html

rmdir

リモート側のディレクトリを削除します。

  rmdir <ディレクトリ> [ <ディレクトリ2> ... ]

もしリモート側ゴミ箱が設定されている場合、ファイルを削除する代わりに設定されたゴミ箱ディレクトリにファイルが移動されます。

XMLログ要素: rm

例:

rmdir public_html

session

セッションの切り替えや表示を行います。

  session [ <セッション> ]

番号で指定したセッションをアクティブセッションに切り替えます。もしセッション番号が指定されなかった場合、現在のセッション一覧を表示します。

例:

session 1
session

stat

リモート ファイルの属性を取得します。

  stat <ファイル名>

自動化する際、このコマンドでファイルの存在を確認することができます。

XMLログ要素: stat

synchronize

ディレクトリの同期を行います。

  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ログ要素: downloaduploadtouchchmodrm

例:

synchronize remote -delete
synchronize both d:\www /home/martin/public_html