2

Я хочу удалить каталоги следующего формата:

C:\Program Files\FogBugz\Plugins\cache\PluginName@example.com_NN

NN - это число, поэтому я хочу использовать подстановочный знак (это часть шага после сборки в Visual Studio). Проблема в том, что мне нужно объединить кавычки вокруг имени пути (для пробела в Program Files) с подстановочным знаком, совпадающим с концом пути. Я уже выяснил, что rd - это команда удаления, которая принимает подстановочные знаки, но куда мне поместить кавычки? Я не пытался завершить цитату (работает для dir), ...example.com*" , ...example.com"* , ...example.com_??" , ...cache\"PluginName@example.com* , ...cache"\PluginName@example.com* , но ни один из них не работает.

(Сколько команд для удаления файла / каталога есть в Windows в любом случае? И почему они все отличаются по возможностям?)

2 ответа2

3

rmdir не поддерживает подстановочные знаки. Он принимает только полные имена файлов.

Вы можете попробовать эту альтернативу:

for /d %f in ("C:\Program Files\FogBugz\Plugins\cache\PluginName@example.com_*") do rmdir /s/q "%~f"

(Аргументы /s/q для rmdir делают то же самое, что и rm -rf в Unix. Аргумент for /d for сопоставления имен каталогов вместо имен файлов.)


Помните, что оболочка cmd.exe не выполняет подстановочные знаки (в отличие от Unix sh) - это обрабатывается самой командой.

0

Вы можете выйти из пробела с помощью символа ^ :C:\Program^ Files\FogBugz\Plugins\cache\PluginName@example.com_*

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