NAS(共有フォルダ)上の大量のファイルがあるディレクトリを高速に削除するバッチファイル

ALL
スポンサーリンク

NAS(共有フォルダ)上で、大量のファイルがあるディレクトリを削除する場合、エクスプローラでは削除開始までに時間がかかります。

コマンドプロンプトから
rmdir /S /q \\test_share\testdir
とコマンドを打って消そうとしても、なぜか
\\test_share\testdir\data1 – ディレクトリが空ではありません。
と言われて消せなかったりします。

/S オプションは、指定されたディレクトリと、その中のすべてのディレクトリとファイルを削除するオプションなのに、です。

時間を置いて同じコマンドを実行すると、今度は消せたり、いまいち挙動が安定しません。

del /f /s /q \\test_share\testdir
のようにして、先にディレクトリ下のファイルを全部消そうとしても、一度で全部消えず、ファイルが残ることがあり、何回か実行する必要があります。

そこで、これらの問題を解決して、大量のファイルがあるディレクトリを削除できるバッチファイルです。
お約束ですが、自己責任でご使用ください。

rmdir2.bat \\test_share\testdir のように、引数で消したいディレクトリを指定して実行してください。
なお、指定するディレクトリにはワイルドカードは指定できません。

rmdir2.bat

@echo off
SET TARGETDIR=%1
IF NOT DEFINED TARGETDIR EXIT /b
IF NOT EXIST %TARGETDIR% EXIT /b
rem 削除したファイル - の表示が無くなるまで実行
:loop
del /f /s /q %TARGETDIR% | findstr /B 削除したファイル 1>nul && goto :loop
rem delで消すファイルがなくなったら rmdir実行
rmdir /s /q %TARGETDIR%
スポンサーリンク

参考

windows — バッチ-rmdirコマンドで「ディレクトリが空ではありません」を取得
成功するまでコマンドを実行するには?

コメント