フォルダ内の .bat ファイルを除いて、フォルダの内容を週に 1 回削除するバッチ ファイル

フォルダ内の .bat ファイルを除いて、フォルダの内容を週に 1 回削除するバッチ ファイル

私の状況のバリエーションはたくさん見てきましたが、納得できるものを見つけることができません (非常に経験不足です)。基本的に、フォルダーが追加されるフォルダー (E:\Downloads) があり、バッチ ファイル (Extractor.bat) も含まれています。週に 1 回、E:\Downloads 内のすべてのフォルダーとファイルを削除したいのですが、Extractor.bat は絶対に削除しません。これについて助けていただければ幸いです。(週に 1 回という部分はスクリプトには必要ありません。Windows タスクを設定して、指定した日に bat ファイルを実行すればよいことはわかっています)。

ウィンドウズ10

答え1

線が見えますSet DEBUG=echoか?

目的の動作が確実に実行されていることを確認したら、REMまたは を使用してこの行を無効にします。このスクリプトは、存在している間は無害ですが、削除した場合はそれほど害はありません。::

このif /i not "%DownloadsDir%" == "%CD%"セリフは、私が若くて愚かだった頃に、間違ったディレクトリにあるファイルをすべて吹き飛ばしてしまった愚かな行為から来ています。

また、cmd.exe 内でこれを実行して現在のパスがおかしくなる場合は、cd /dを に変更しpushdて を一番下に置くこともできます。popd

@echo off
SetLocal
Set DEBUG=echo

Set DownloadsDir=E:\Downloads

cd /d %DownloadsDir%
if /i not "%DownloadsDir%" == "%CD%" echo Bad directory! && goto :EOF

for /F "delims=" %%d in ('dir /ad /b') do %DEBUG% rd /s /q "%%d"
for %%f in (*.*) do if /i not "%%f"=="Extractor.bat" %DEBUG% del /F /Q "%%f"

EndLocal

関連情報