我见过很多与我的情况类似的情况,但找不到让我满意的(非常缺乏经验)。基本上,我有一个文件夹(E:\Downloads),文件夹被添加到其中,并且还包含一个批处理文件(Extractor.bat)。我想每周一次删除 E:\Downloads 中的所有文件夹和文件,但绝不会删除 Extractor.bat。非常感谢您的帮助!(脚本中每周一次的部分不是必需的,我知道我可以设置一个 Windows 任务在指定日期运行 bat 文件)。
Windows 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