2011年2月20日日曜日

DEL = ERASE = ファイルを削除する - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。ファイルとフォルダー関連
○Windows XP
指定したファイルを削除します。

o オプション無しの時、削除出来ないファイル属性があります。
o ファイル属性やファイルの指定方法に関係なくファイルを削除したい時は、 del /f /q /a- ファイル名
    + 詳しくは、下の方にある機能欄とメモ欄をどうぞ。


**** 書式
--------
del [ オプション ] 削除したいファイル名
もしくは
erase [ オプション ] 削除したいファイル名
--------

o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
o オプション = 次のオプションを指定出来ます。
    + /f = 読み取り専用属性の付いたファイルを、強制的に削除します。
    + /a = 特定のファイル属性を持つファイルだけを削除対象にします。
        + r = 読み取り専用属性
        + a = アーカイブ属性
        + s = システムファイル属性
        + h = 隠しファイル属性
        + - = 指定した属性以外
        + 詳細は、下記の説明の通りです。
    + /s = サブフォルダーにある同名ファイルも、削除します。
    + /q = 「削除しますか?」と質問しません。
        + この指定が無いと、ファイル名に「*」や「*.*」を指定した時に「削除しますか?」と質問します。
    + /p = ファイルを削除する前に「削除しますか?」と質問します。
        + ファイル1つずつに対して、質問します。
o オプションの指定が無い時、次のように動作します。
    + 検索しないファイル属性があります。「システムファイル属性」「隠しファイル属性」
    + 読み取り専用属性の付いたファイルは、削除しません。
    + 全ファイル指定(del * や del *.*)の時に「削除しますか?」と質問します。
o ファイル名 = 削除したいファイル名です。
    + ファイルの場所とファイル名を「\」でつなぎます。
    + 今居る場所からの相対パスも指定出来ます。
    + ファイル名部分の指定には、ワイルドカード(「*」や「?」)を使用出来ます。
    + なお、このコマンドでは、「\」の代わりに UNIXの区切り文字「/」を使う事は、出来ません。

** /a オプションの指定方法について
o 1回しか指定出来ません。/a を複数指定すると、最後に指定した /a が有効になります。
o /ars = 読み取り専用属性と、システムファイル属性の両方を持つファイルを削除対象にします。
    + rを指定した時は、/f オプション(= 読み取り専用属性の強制削除)も必要になります。
o /a-rs = 読み取り専用属性を持たず、システムファイル属性を持つファイルを削除対象にします。
o /a- = 属性に関係なく、指定した全てのファイルを削除対象にします。
o /a オプションの指定が無い時は、次の属性を持つファイルを、削除対象から「除外」します。
    + システムファイル属性
    + 隠しファイル属性

o ファイル属性の変更は、ATTRIB コマンドで行う事が出来ます。
o また、システムファイル属性以外は、ファイルのプロパティで設定する事も出来ます。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 成功。権利が無くて削除出来なかった時も、成功扱いになります。
    + 「c:\ミクさん\ネギ.txt が見つかりませんでした。」 = 削除するファイルが見つかりませんでした。
    + 「アクセスが拒否されました。」 = 削除する権利がありません。ファイル属性やアクセス権を見直して下さい。
    + 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 = ファイルを使っているプログラムがあります。
o 1 = エラー、もしくは特殊な中止
    + 「コマンドの構文が誤っています。」
    + 「無効なスイッチです - ""」 = オプションの指定が間違っています。
    + もしくは、del * や del *.* を実行して、「削除しますか」の質問で n を選択した時


**** 使用例
o 普通に削除します。
--------
del "c:\ミクさん\ネギ ネーギはネギにあらず*.txt"
--------

    + コマンド名やオプションは、大文字で書く事も出来ます。
    + ファイルのパスに空白が入る時は、ファイルのパスを「"」で括ります。
    + 読み取り専用ファイルは削除しません。

o 読み取り専用ファイルも削除します。
--------
del /f "c:\ミクさん\ネギ ネーギはネギにあらず*.txt"
--------


o サブフォルダーも探して削除します。
--------
del /f /s "c:\ミクさん\ネギ ネーギはネギにあらず*.txt"
--------


o 隠しファイルなども、徹底的に探して削除します。
--------
del /f /s /a- "c:\ミクさん\ネギ ネーギはネギにあらず*.txt"
--------



**** 機能
o 指定したファイルを削除します。
o /F オプションを指定しない時、読み取り専用属性を持ったファイルは削除されません。
o /A オプションを指定しない時、検索されないファイルがあります。(システムファイル属性、隠しファイル属性)
o /Q オプションを指定しない時、全ファイル指定(del * や del *.*)の時に「削除しますか?」と質問します。
o サブフォルダーの同名ファイルも削除したい時は、/S オプションを付けます。

**** メモ
o ファイル属性やファイルの指定方法に関係なくファイルを削除したい時は、 del /f /q /a- ファイル名
    + /A オプションで、個別の属性を指定しないのがポイントです。


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


==
関連ページ:
    ▼Windowsコマンド。ファイルとフォルダー関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > ASSOC = ファイルの拡張子に関連付ける名前(= ファイルタイプ)を表示、変更する
    ATTRIB = ファイル属性を表示、変更する
    FTYPE = ファイルを「開く」時のコマンドを表示、変更する