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

时间:2016-09-02 11:21:50

标签: windows batch-file directory rmdir

我想删除C:\ temp中的所有文件和文件夹,除了一个包含大量文件和子文件夹的特定文件夹(C:\ temp \ 123)。

我尝试使用pushd "c:\temp\123" && rd /s /q "c:\temp",但它会删除c:\ temp \ 123

中的所有子文件夹和文件

任何人都可以帮忙解决上述问题吗?

1 个答案:

答案 0 :(得分: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

这与此方法非常相似:Batch command to delete everything (sub folders and files) from a folder except one file