ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

Windows 対象のフォルダを残してフォルダーとファイルをすべて削除するコマンドとバッチ

ホテルや漫画喫茶などのパソコンは、利用後、デスクトップなどのデータが削除するように設定されています。


同じように自宅のパソコンなどでも、Windowsのコマンドとバッチを駆使して、対象のフォルダーからファイル、フォルダなどのデータを削除する事ができます。


例えば、ログオフ時に、デスクトップのデータをすべて削除したい場合などに使えます。


まず、使用するコマンドは、「del」と「mkdir」です。


ちなみに、del、mkdirコマンドの引数です。

ファイル (複数可) を削除します。

DEL [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前
ERASE [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前

  名前          ファイルまたはディレクトリ (複数可) の一覧を指定します。
                複数のファイルを削除するときはワイルドカードを使用します。
                ディレクトリが指定されたときはディレクトリ内のすべてのファ
                イルは削除されます。

  /P            各ファイルを削除する前に確認のメッセージを表示します。
  /F            読み取り専用ファイルを強制的に削除します。
  /S            指定されたファイルをすべてのサブディレクトリから削除します。
  /Q            ワイルドカードを使用して一括削除するときに、確認のメッセージ
                を表示しません。(QUIET モード)
  /A            属性により削除するファイルを選択します。
  属性          R  読み取り専用            S  システム ファイル
                H  隠しファイル            A  アーカイブ
                I  非インデックス対象ファイル  L  再解析ポイント
                -  その属性以外

コマンド拡張機能を有効にすると、DEL と ERASE は次のように変更されます:

続行するには何かキーを押してください . . . 

 

ディレクトリを削除します。

RMDIR [/S] [/Q] [ドライブ:]パス
RD [/S] [/Q] [ドライブ:]パス

    /S      指定されたディレクトリに加えて、そのディレクトリ内のすべての
            ディレクトリとファイルを削除します。ディレクトリ ツリーを削除
            するときに使用します。

    /Q      /S を指定してディレクトリ ツリーを削除するときに、確認の
            メッセージを表示しません。(QUIET モード)



実際に使用するコマンドは以下になります。

cd C:\Users\<ユーザー名>\Desktop
del *.*
for /D %f in ( * ) do rmdir /S /Q "%f"
 

まず、cdコマンドでカレントディレクトリをデスクトップへ移動。続いて、dellコマンドでファイルを削除します。


そして、rmdirコマンドで、フォルダを削除します。「/S」オプションで 指定されたディレクトリに加えて、そのディレクトリ内のすべてのディレクトリとファイルを削除します。


また、バッチファイルに仕込む場合は、以下のように記述します。

cd C:\Users\<ユーザー名>\Desktop
del *.*
for /D %%f in ( * ) do rmdir /S /Q "%%f"



%が2つになるのがミソです。これをテキストなどで作成し、拡張子を[.bat]に変更します。その後、ワークグループであれば、ローカルポリシー、ドメイン環境であれば、ドメインのグループポリシーで設定すればOKです。


ちなみに、ポリシーの設定箇所は以下になります。

[ユーザの構成]>[Windowsの設定]>[スクリプト(ログオン/ログオフ)]>[ログオフ]


ここに作成したバッチファイルを指定すれば、ログオフ時にデスクトップのデータが削除されるようになりますね。


ちなみに、漫画喫茶などは、ツールを使って初期化しているようです。Windowsだけの機能でログオフ時のデータを削除させたい場合は、参考にしてみてください。