Как удалить все файлы и подкаталоги из каталога без удаления каталога в Windows CMD?

Привет, я ищу команду, похожую на эту команду в Linux:

rm -fRv отладка/*

Эта команда удаляет все файлы и каталоги внутри отладки, но не удаляет каталог отладки.

Как я могу сделать это в Windows с помощью CMD?

до свидания


person MaikoID    schedule 31.03.2011    source источник


Ответы (2)


Мне кажется:

del /S /Q debug\*

(Хотя, не по теме, я использую команду MinGW rm, которая работает так же, как и под Linux.)

person Damon    schedule 31.03.2011
comment
del /S /Q debug* - эта команда удаляет только файлы. Подкаталоги остаются нетронутыми. Как я могу использовать команду MinGw rm внутри файлов проекта Qt (.pro)? - person MaikoID; 31.03.2011
comment
Я ничего не знаю о файлах проекта Qt, но поскольку вопрос был о CMD, я предполагаю, что они работают как скрипты. rm, которую вы можете получить от MinGW, от GnuWin32 или Unxutils (в зависимости от того, что вы хотите), — это обычная обычная командная программа в смысле Unix. Итак, пока он находится в %PATH%, вы можете просто вызвать его из любого скрипта. - person Damon; 31.03.2011
comment
хм .. Я понимаю, но я не могу найти файл с именем rm.exe (или аналогичный) в моей установке Qt MinGW. - person MaikoID; 31.03.2011
comment
Забавно, у меня явно есть все стандартные программы Unix, хотя, по общему признанию, некоторые из них могли быть взяты из Unxutils или GnuWin32. Хотя я думаю, что пакеты MinGW/MSYS также включают самые основные команды, такие как ls или rm. В любом случае, вы всегда можете найти их в UnxUtils. - person Damon; 01.04.2011

person    schedule
comment
rd /s /q отладка* - не работает. Это говорит о том, что синтаксис команды неверен. - person MaikoID; 31.03.2011
comment
это самый странный синтаксис простой команды, который я когда-либо видел. Но это работает. Спасибо - person MaikoID; 31.03.2011
comment
@user: Исторически сложилось различие между удалением каталога и файла (назад к старым дням DOS, на которых была основана CMD (и CP / M до этого)). Итак, здесь выполняется итерация по всем каталогам (for /d) и для каждого из них выдается команда rd (поскольку rd не может принимать подстановочные знаки, как вы заметили). Затем мы приступаем к удалению всех обычных файлов в этом каталоге (del debug\*). Более простой (и, вероятно, более быстрый способ), вероятно, будет удалить debug и создать его заново, но, конечно, это не сработает, если какой-то процесс все еще использует его в качестве рабочего каталога. - person Joey; 31.03.2011