2014-11-02 3 views
-1

У меня есть командный файл, который должен идентифицировать наименьший каталог и удалять все остальные директоры, оставляя только самый маленький.Заключительный этап пакетного файла не работает ... Почему?

Идентификация работает правильно, но удаление других больших папок не работает. Ниже приводится то, что у меня есть сейчас. Что нужно изменить?

@echo off 
setlocal EnableDelayedExpansion 

rem Get size of all folders 
set smallestSize=9999999999 
for /D %%a in (*) do (
    set size=0 
    for %%b in (%%a\*.*) do set /A size+=%%~Zb 
    if !size! lss !smallestSize! (
     set smallestSize=!size! 
     set smallestName=%%a 
    ) 
) 

echo Deleted folder: "%smallestName%" 
pause 

rem Delete all folders, except the smallest one. 
for /D %%a in (*) do (
    if "%%a" neq "%smallestName%" rmdir /S /Q "%%a" 
+0

Вы должны следовать вашим сомнениям в [оригинальном вопросе] (http://stackoverflow.com/questions/26689398/ Batch-файл-команд-к-держать-наименьшую-каталог-и-удалить-все-другие). Если выше вы запускаете программу, вы пропустили последнюю строку (с правыми скобками). – Aacini

ответ

0

Может быть просто опечаткой - там отсутствует крупная скобка для окончательного for/do

Смежные вопросы