Как объединить подстановочные знаки и пробелы (кавычки) в команде Windows?

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

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
задан 28.06.2012, 11:39

2 ответа

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) - это обрабатывается самой командой.

3
ответ дан 08.12.2019, 07:33

Можно выйти из пространства с ^ символ: C:\Program^ Files\FogBugz\Plugins\cache\PluginName@example.com_*

0
ответ дан 08.12.2019, 07:33

Теги

Похожие вопросы