2010-06-09 25 views
11

dışında bir klasörde her şeyi silmek için bir klasördeki tüm alt klasörleri ve dosyaları silmek için bir komut dosyası vardır:Windows toplu komut dosyası bir

FOR /D %%i IN ("D:\myfolder\*") DO RD /S /Q "%%i" & DEL /Q "D:\myfolder\*.*" 

Ve o inşaat büyük! Sadece sorun şu ki, XCOPY hariç tutma özelliği gibi bir veya daha fazla klasörü hariç tutmak istiyorum.

Sadece bu betiğe nasıl ekleyebileceğimi anlayamıyorum.

+0

Ve ben de dosyaları siler olduğunu söylemek gerekir: Burada –

cevap

15

Sen For döngüsü önce klasörleri gizlemek için çalışın ve bunun gibi sonradan görünür hale olabilir:

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 
+0

Vay! Mükemmel çalışıyor! :-) –

0

sadece arasındaki & olması gerekir "%% i" ve DEL illâ o klasörleri silecek ancak dosyaları değil. cadı da amacı budur,

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 
0

dışlanan dosya ve/veya dizin dokunmayan bir yolu olduğundan, herhangi nitelikler değiştirilir.
İlgili konular