サイトアイコン スグブログ

【bat】ファイルを削除する方法!エラー対処法あり

結婚

様々なスクリプトでファイルを削除する方法が違うので、batでファイルを削除する方法を教えて欲しいです。

またファイル削除する前に確認を入れたいです。

問答無用で削除したいです。

そういった疑問に現役エンジニアの筆者が答えます。

batでファイル削除したい人

batでファイル削除する時のオプションを知っておきましょう。

windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。

batでファイルを削除する方法

batでファイル削除する基本構文はこうです!

del ファイル名

または以下の構文でも可能です。オプションや機能的にも同じ効果があります。

erase ファイル名

フォルダ削除、サブフォルダまで削除する方法は以下にまとめています。

batでファイルを一括で削除する方法

ファイルを一括削除する方法をまとめます。

del *

これでカレントディレクトリにあるファイルを全て削除できます。

※注意点 これだと実行したbatファイルまで削除されます。

フォルダの中のファイルを一括で削除する

次はフォルダを指定すればどうなるでしょうか?

del ディレクトリ名

フォルダの中のファイルが全てが削除されます。

デフォルトで削除する前に以下のように確認プロンプトが表示されます。

C:\script\test_dir\*、よろしいですか (Y/N)?

yを押せば削除されます。

ファイルを削除する時のオプション

batでファイルを削除する時のオプションをまとめます。

オプション意味
/pファイルを削除する前に確認プロンプトを表示する
/f読み取り専用ファイルを強制的に削除する
/sフォルダとサブフォルダの該当ファイルを削除する
/qファイル名に*を使用した場合、確認プロンプトを表示しない
/aファイルの属性を指定する
batでファイル削除する時のオプション一覧

/aオプションで指定できるファイル属性一覧をまとめます。

属性意味
Aアーカイブファイル
Dディレクトリ
H隠しファイル (hidden)
I非インデックス対象ファイル
Lリンク(シンボリックリンク)
R読み取り専用 (real only)
Sシステムファイル
-属性指定以外の属性ファイル
属性オプション一覧

読み取り専用のファイルを削除する方法

読み取り専用のファイルを削除しようと下のbatファイルを実行します。

del test_読み取り専用.txt

実行結果はアクセス拒否となり削除できません。

C:\script\bat\26_ファイル削除\test_読み取り専用.txt
アクセスが拒否されました。

ここでbatファイルを下のように修正します。

del /f test_読み取り専用.txt

実行結果は削除されました。読み取り専用のファイルを削除するには「/f」オプションを追加します。

フォルダとサブフォルダの該当ファイルを削除する

batファイルと同じ階層に1つのファイル「test1.txt」と2つのフォルダ「test_dir」「test_dir2」があり、両方のディレクトリの中には「test1.txt」があります。

以下のbatファイルを実行します。

del test1.txt

同じ階層の「test1.txt」のみ削除されます。

batファイルを以下の様に修正します。「/s」オプションを付けただけです。

del /s test1.txt

これを実行すると以下の結果になりました。

削除したファイル - C:\script\bat\26_ファイル削除\test1.txt
削除したファイル - C:\script\bat\26_ファイル削除\test_dir\test1.txt
削除したファイル - C:\script\bat\26_ファイル削除\test_dir2\test1.txt

サブフォルダを含め「test1.txt」が削除されています。

複数のファイルを削除する時に確認プロンプトを表示しない

全てのファイルを削除する時に*を使用します。※「del *.txt」など一部を*にする時は別です

del *

その時は確認プロンプトが表示されます。

C:\script\bat\26_ファイル削除\*、よろしいですか (Y/N)?

全部削除する時にプロンプトで確認されるのは安全でありがたいですが、邪魔になる時があります。

自動化する時です。確認プロンプトが表示されてそこで処理が止まってしまいます。

そういった時はbatを以下のように修正します。「/q」オプションをつけるだけです。

del /q *

確認プロンプトなしで削除されました。

※batファイルと同階層で行うとbatまで削除されるので注意

自動化していてもここで止まることはありません。

属性を指定して隠しファイルを削除する

隠しファイルを削除しようとすると、見えないので削除できません。

del test_隠しファイル.txt

このbatファイルを実行します。

C:\script\bat\26_ファイル削除\test_隠しファイル.txt が見つかりませんでした。

隠しファイルは見えないようです。

batファイルを以下のように修正します。「/a」オプションで属性を指定 :をつけて隠しファイルである「H」を指定します。

del /a:H test_隠しファイル.txt

このbatファイルを実行すると、なんと隠しファイルでも削除できてしまいました。

日本語が文字化けした時の対処法

batでファイルを削除しようとして、以下のように文字化けの為、出来なかった場合の対処法

C:\script\bat\26_ファイル削除\test_隱ュ縺ソ蜿悶j蟆ら畑.txt が見つかりませんでした。

batファイルの文字コードUTF-8になっているのが原因です。

文字コードを「ANSI」に変更する事で、問題なく削除可能です。

batでファイルを扱うその他の方法

batでファイル作成する方法

batでファイル削除する方法はわかりました。

ではファイル作成する方法はどうでしょうか?

echo > test1.txt

このbatでファイル作成する事が出来ます。その他のファイル作成のやり方は以下にまとめています。

batでファイル名を変更する方法

ファイル名を変更する場合はどうでしょうか?

rename ファイル名 変更後ファイル名

renameコマンドでファイル名変更可能です。

batでファイル存在チェックする方法

batでファイルの存在をチェックする方法はどうでしょうか?

if exist ファイル名 ( 処理 )

ifとexistでファイルの存在を確認できます。

batでファイルを移動する方法

ファイルを移動する方法はどうでしょうか?

move パス\ファイル名 移動後パス\移動後ファイル名

これでファイルの移動が可能です。

モバイルバージョンを終了