Я нашел эту команду на этом сайте для рекурсивного удаления пустых каталогов, но не смог прокомментировать этот вопрос, поскольку я только что зарегистрировался и у меня нулевое число повторений .......

for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"

Я не решаюсь запустить его на сервере (отлично работал в тестовой директории на моем ноутбуке с Win7).....Я запустил его в каталоге, в котором я хотел начать. Должен ли я просто запустить его внутри каталога, он должен рекурсивно проверить или есть способ установить начальную точку?

2 ответа2

1

Чтобы запустить команду в другом каталоге

for /f "delims=" %d in ('dir c:\pathtostart /s /b /ad ^| sort /r') do rd "%d"

и измените c:\pathtostart соответствующим образом.


Чтобы использовать пакетный файл

Или создайте командный файл RemoveEmptyDirs.cmd:

@echo off 
for /f "delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd "%%d"

и позвоните следующим образом:

RemoveEmptyDirs c:\pathtostart

Проверить перед удалением

Если вы не решаетесь, то для проверки того, что произойдет, замените rd на echo . Это отобразит список каталогов, которые будут удалены.

Когда вы довольны списком, замените echo на rd и запустите удаление.

0

Используйте dir "%~1" . Это также будет обрабатывать пути в кавычках, если вы хотите начать в каталоге, который содержит пробелы (RemoveEmptyDirs "C:\program files").

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .