[英]Windows batch script to delete everything in a folder except one
我有一個腳本刪除文件夾中的所有子文件夾和文件:
FOR /D %%i IN ("D:\myfolder\*") DO RD /S /Q "%%i" & DEL /Q "D:\myfolder\*.*"
而且效果很棒! 唯一的問題是我想排除一個或多個文件夾,例如XCOPY排除功能。
我只是想不出如何將其添加到腳本中。
您可以嘗試在for循環之前隱藏文件夾,然后取消隱藏它們,如下所示:
ATTRIB +H D:\myfolder\keepit
FOR /D %%i IN ("D:\myfolder\*") DO RD /S /Q "%%i" DEL /Q "D:\myfolder\*.*"
ATTRIB -H D:\myfolder\keepit
需要有一個&只是在“%% i”和DEL之間,否則它將刪除文件夾但不刪除文件。
這是一種不觸及排除文件和/或目錄的方法,因此不會更改任何屬性:
rem // Change to target directory (skip if not found):
pushd "D:\Data" || exit /B 1
rem // Iterate through all subdirectories:
for /D %%D in ("*") do (
rem // Exclude a certain subdirectory:
if /I not "%%~nxD"=="ExcludeDir" rd /S /Q "%%~D"
)
rem // Iterate through all immediate files:
for %%F in ("*") do (
rem // Exclude a certain file:
if /I not "%%~nxD"=="ExcludeFile.txt" del "%%~F"
)
popd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.