我想删除以下格式的目录:
C:\Program Files\FogBugz\Plugins\cache\[email protected]_NN
NN
是一个数字,所以我想使用通配符(这是 Visual Studio 中构建后步骤的一部分)。问题是我需要将路径名(用于 中的空格Program Files
)的引号与通配符结合起来以匹配路径的结尾。我已经发现这rd
是接受通配符的删除命令,但我应该把引号放在哪里?我试过不使用结尾引号(适用于dir
)、...example.com*"
、...example.com"*
、...example.com_??"
、,,但都不起作用。...cache\"[email protected]*
...cache"\[email protected]*
(Windows 中到底有多少个用于删除文件/目录的命令?为什么它们的功能各不相同?)
答案1
rmdir
不支持通配符。它只接受完整的文件名。
您可以尝试这个替代方案:
对于/d%f在(“C:\ Program Files \ FogBugz \ Plugins \ cache \[电子邮件保护]_*”)执行 rmdir /s/q “%~f”
(这些/s/q
参数的作用与Unix 上rmdir
相同。参数匹配目录名而不是文件名。)rm -rf
for /d
for
请记住,shellcmd.exe
不执行通配符扩展(与 Unix 不同 sh
)——这是由命令本身处理的。
答案2
您可以使用以下字符退出空格^
:
C:\Program^ Files\FogBugz\Plugins\cache\[email protected]_*