每周一次删除文件夹内容的批处理文件,文件夹内的 .bat 文件除外

每周一次删除文件夹内容的批处理文件,文件夹内的 .bat 文件除外

我见过很多与我的情况类似的情况,但找不到让我满意的(非常缺乏经验)。基本上,我有一个文件夹(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 /dpushd并将放在底部。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

相关内容