私はマップレイヤー(D:\data\parks, D:\data\buildings, D:\data\rivers)
からのデータを含む多くのフォルダーを持つD:\data
のディレクトリーを持っています。バッチファイル内の特定の名前で始まらないフォルダからファイルとサブフォルダを削除するにはどうすればよいですか?
は私が名前'raster'
すなわち
D:\data\raster_aerialimage
で始まる「データ」内の任意のフォルダを除いて、ファイルやサブフォルダの両方が含まれ、これらのサブフォルダのすべての内容を削除したいです。
フォルダーの1つを削除するコードがありますが、すべてのフォルダーをループし、「ラスター」で始まらないフォルダーのみを指定する必要があります。このコードを追加するにはどうすればいいですか?新しい?
@echo off
set folder=D:\data
set except=raster
set "MT=%TEMP%\DelFolder_%RANDOM%"
mkdir %MT%
:: mirror an empty dir to a folder tree will delete it
robocopy "%MT%" "%folder%" /MIR /XD %except%* /R:1 /W:1
rmdir /S /Q "%MT%"
注ちょうど%except%
変数の後ろにワイルドカードスター:私はすべての新しいバージョンのWindowsで利用可能であるのRobocopy.exeを使用することをお勧め
FOR /D %%p IN ("D:\data\parks\*.*") DO rmdir "%%p" /s /q
ありがとう@aschipfl - エラー 'D:\>(rmdir/S/Q "airports")が表示されるようです。指定されたファイルが見つかりません。 これは他のいくつかのフォルダでも起こりそうです。 – Chris
Hmm ... 'dir/A:D'は存在するディレクトリだけを返すべきです...これらのディレクトリやサブアイテムに十分なアクセス権がないのでしょうか? 'dir/B/A:D-L" D:\ data "'で試してみたらどうでしょうか? – aschipfl
私は同じメッセージを受け取っているようです。データをローカルのC:ドライブとZ:ドライブに移動しましたが、同じメッセージが表示されます。私はすべての3つのドライブを読み書きできるので、謎のビット! – Chris