2011年2月9日水曜日

REPLACE = ファイルを置き換える(= 差分コピーする) - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。ファイルとフォルダー関連
○Windows XP
指定したファイルを置き換えます。(= 差分コピーします。)

o 指定したファイルに対して、次の事が出来ます。
    + 増えたファイルをコピーする
    + 同じ名前のファイルを上書きコピーする
    + 更新日時が新しくなったファイルだけを上書きコピーする
o フォルダーはコピーしません。必要な時は、XCOPY コマンドなどと併用します。


**** 書式
--------
replace [ オプション ] コピーしたいファイル名 [ コピー先の場所 ]
--------

o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
o オプション = 次のオプションを指定出来ます。
    + /a = コピー先に無いファイルだけを、コピーします。
    + /u = コピー先のファイルの更新日付が古い時だけ、上書きコピーします。
        + 但し、コピー先に読み取り専用属性の付いたファイルがあると、コピーに失敗してエラーになります。
        + ですので、自動実行では /r オプションとの併用がおすすめです。
        + /a オプションと一緒に指定する事は出来ません。
    + /s = コピー先のサブフォルダーにある同名ファイルも、置き換え対象にします。
        + 階層のコピーではありません。使い所に注意します。
        + /a オプションと一緒に指定する事は出来ません。
    + /p = 置き換える前に「置き換えますか」と質問します。
        + 1つずつ質問します。沢山コピーする時に指定すると、大変です。
    + /r = コピー先のファイルに読み取り専用属性が付いていても、コピーします。
    + /w = メッセージ「続行するときは何かキーを押してください...」を出して、一旦停止します。
        + ヘルプによると、ディスクを入れ替れてもらう時に使う機能、との事です。
    + オプションの指定が無い時、コピー先の場所にもあるファイルのみ、上書きコピーします。
        + 但し、コピー先に読み取り専用属性の付いたファイルがあると、エラーになります。
        + ですので、自動実行では /r オプションとの併用がおすすめです。
o ファイル名 = コピーしたいファイル名です。
    + ファイルの場所とファイル名を「\」でつなぎます。
    + 今居る場所からの相対パスも指定出来ます。
    + ファイル名部分の指定には、ワイルドカード(「*」や「?」)を使用出来ます。
    + なお、このコマンドでは、「\」の代わりに UNIXの区切り文字「/」を使う事は、出来ません。
o 移動先の場所 = 移動先のフォルダーのパスを指定します。
    + 省略すると、移動先の場所はカレントディレクトリになります。
    + ファイル名まで指定すると、エラーになります。
    + 「\」の代わりに UNIXの区切り文字「/」を使う事は、出来ません。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 成功
    + 「置き換えるファイルはありません」
o 2 = エラー。ファイルが見つからない時
    + 「ファイルが見つかりません - dir1」 = 「\」の代わりに UNIXの区切り文字「/」を使っていると、このエラー、もしくは 11番エラーになります。
o 3 = エラー。フォルダーが見つからない時
    + 「パスが見つかりません」 = コピー元やコピー先のフォルダーが見つかりませんでした。
o 5 = エラー。アクセス拒否
    + 「アクセスは拒否されました - (ファイル名)」「置き換えるファイルはありません」 = コピー先のファイルに読み込み専用属性が付いている場合は、 /R オプションを付けるとコピー出来ます。
o 11 = エラー。オプションの指定誤り
    + 「無効なスイッチです - /*」 = オプションが間違っています。
    + 「無効なパラメータの組み合わせです」 = /A と /U、もしくは/A と /S を同時に指定してはいけません。


**** 使用例
o 「私の」で始まる名前のファイルを、c:\ミクさん に差分バックアップします。
--------
replace /a /r 私の* c:\ミクさん
replace /u /r 私の* c:\ミクさん
--------

    + コマンド名は、大文字で書く事も出来ます。
    + 新しく作ったファイルは、/A オプションでコピーします。
    + 更新したファイルは、/U オプションでコピーします。
    + なお、上記コマンドは、サブフォルダーまではバックアップしません。



**** 機能
o 指定したファイルを差分コピーします。
    + 増えたファイルをコピーする機能
    + 同じ名前のファイルを上書きコピーする機能
    + 更新日時が新しくなったファイルだけを上書きコピーする機能

** ファイル属性について
o REPLACE コマンドは、ATTRIB コマンドで設定出来る全てのファイル属性に対応しています。
    + 読み取り専用属性
    + アーカイブ属性
    + システムファイル属性
    + 隠しファイル属性
o 但し、上書き更新する時は、/R を付ける事をおすすめします。
o /R オプションを指定しない場合、コピー先に読み取り専用属性のファイルがあると、上書き出来ずに REPLACE コマンドが終了してしまうからです。


**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼Windowsコマンド。ファイルとフォルダー関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > DEL = ERASE = ファイルを削除する
    ASSOC = ファイルの拡張子に関連付ける名前(= ファイルタイプ)を表示、変更する
    ATTRIB = ファイル属性を表示、変更する
(2011年2月20日追加。機能欄にて、ファイル属性について)

PATH = 実行可能ファイルを検索する場所を表示、設定する - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。制御文と環境変数
○Windows XP
実行可能ファイルを検索する場所を表示、設定します。

o 環境変数 PATH を表示、変更するコマンドです。
o 環境変数 PATHEXT で指定された拡張子を持つファイル(= 実行可能ファイル)を探す時に使います。
o 現在居る場所(= カレントディレクトリ)は、PATH で指定した場所よりも先に検索されます。


**** 書式
--------
path
もしくは
path [ パス1[;パス2][;パス3 ... ]
もしくは
path ;
--------

o コマンド名は、大文字小文字のどちらでも大丈夫です。

(個別説明)
--------
path
--------

o 引数を指定しない時、このコマンドは、現在の PATH の値を表示します。
--------
path [ パス1[;パス2][;パス3 ... ]
--------

o 引数を指定した時、コマンドプロンプトは、カレントディレクトリと、指定したパスの直下だけを検索します。
o パス1, パス2, パス3 = ファイルを探したい場所です。
    + パスを複数指定する時は、「;」(セミコロン)で区切ります。
    + そして、優先する順に並べます。
    + 既存のパス全部を指定したい時は、%PATH% と書く事も出来ます。
    + パスは、空白付きや、UNIX形式の区切り文字「/」を指定しても大丈夫です。
--------
path ;
--------

o ; = PATHを空にします。
    + この時、コマンドプロンプトは、カレントディレクトリだけ調べます。

** カレントディレクトリについて
o このコマンドで指定するパスに、「.」(= カレントディレクトリ)を書く必要は、ありません。
    + コマンドプロンプトは、PATH の前にカレントディレクトリを調べるからです。
    + ですので、どこに書いても、書かなくても、コマンドプロンプトの動作は変わりません。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = 成功 = 常に成功します。このコマンドは、ERRORLEVELの値を更新しません。


**** 使用例
o 現在のパスを確認して
--------
path
--------


o 必要に応じて設定します。
--------
path d:\ミクさん\プログラム;%PATH%

path c:\ミクさん\Program
path %PATH%;C:\Program Files\Mikusan\bin;c:\ミクさん\ネギ\プログラム
path ;
--------

    + %PATH% のように環境変数を使用出来ます。
    + パスの途中に空白が入っていても、「"」で括りません。


**** 機能
o 実行可能ファイルを検索する場所を表示、設定します。
o 環境変数 PATH を変更するコマンドです。

** 実行可能ファイルの検索順序について
o 最初に、現在居る場所(= カレントディレクトリ)を検索します。
o 見つからない時は、PATH で指定されたパスを検索します。
o この時、「;」(セミコロン)で PATH の値を分割し、先頭のパスから順に検索します。
    + 見つかったら、検索を終了します。
o 最後まで探しても実行可能ファイルが見つからなかった時は、エラーメッセージを出します。
    + この時、ERRORLEVEL の値を 9009 に設定します。


**** メモ
o 「PATH ;」を実行すると、HELP コマンドが機能しなくなります。
o この時、コマンドの説明は、「コマンド名 /?」で表示する事が出来ます。
o HELP コマンドが必要になった時は、環境変数 PATH に、ウインドウズをインストールした場所にある system32 サブフォルダーを追加します。
--------
PATH %SystemRoot%\system32;%PATH%
--------



**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼Windowsコマンド。制御文と環境変数▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > 変数 ERRORLEVEL = コマンドの戻り値
    変数 CD = カレントディレクトリ = 現在の場所
    変数 DATE = 現在の日付
(2011年2月19日変更。書式を個別説明化)