如何迭代名称不匹配通配符的文件/目录?
问题描述:
从批处理脚本文件中,以下代码成功删除以*开头的文件夹,表示通配符。如何编写一个迭代不匹配的文件/文件夹的FOR循环?例如; ![* ABC]如何迭代名称不匹配通配符的文件/目录?
REM Remove unwanted files/directories
FOR /D /r %%G IN ("local\partialFileName*") DO (
RMDIR /Q /S %%G
)
答
创建一个临时目录,将符合条件的文件存在,删除所有仍然存在,然后将其移回。由于在同一个驱动器上移动并不需要拷贝,所以它会很快。
md ..\foo
move *abc ..\foo
rd . /s /q
move ..\foo\* .
rd ..\foo
第一个rd命令会生成一条错误消息,但可以忽略。
比方说,它取决于当前的情况和正则表达式的能力。 – Endoro 2013-05-14 01:41:08