删除除一个以外的所有文件夹

Rom*_*ain 1 windows directory batch-file rmdir

我想删除C:\ temp中的所有文件和文件夹,但一个特定的文件夹(C:\ temp \ 123)除外,其中包含许多文件和子文件夹。

我尝试过,pushd "c:\temp\123" && rd /s /q "c:\temp"但它删除了c:\ temp \ 123中的所有子文件夹和文件

有人可以帮忙吗?

asc*_*pfl 6

您可以通过以下方式进行操作:

pushd "C:\Temp" || exit /B 1
for /D %%D in ("*") do (
    if /I not "%%~nxD"=="123" rd /S /Q "%%~D"
)
for %%F in ("*") do (
    del "%%~F"
)
popd
Run Code Online (Sandbox Code Playgroud)

这与这种方法非常相似:批处理命令可删除文件夹中除一个文件外的所有内容(子文件夹和文件)