Я хочу удалить каталоги следующего формата:
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 так или иначе? И почему они все отличаются по возможностям?)
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
) - это обрабатывается самой командой.
Можно выйти из пространства с ^
символ: C:\Program^ Files\FogBugz\Plugins\cache\PluginName@example.com_*