批处理脚本,用于删除基于findstr正则表达式的文件

时间:2013-08-22 16:32:15

标签: windows batch-file findstr

我正在尝试使用批处理脚本删除一些基于正则表达式的文件。我所拥有的是:

FOR /f "tokens=*" %%a in ('dir /b | findstr MY_REGEX_HERE') DO ECHO %%a 

我知道我的内部命令可以独立工作,给我目录列表,但是当我将它嵌入到for循环中时,我得到一个错误| was unexpected at this time.在FOR循环命令中不允许使用管道吗?或者我需要逃避它或什么?

任何有关我如何做到这一点的帮助都会很棒。

2 个答案:

答案 0 :(得分:7)

FOR /f "tokens=*" %%a in ('dir /b ^| findstr MY_REGEX_HERE') DO ECHO %%a 

使用之前的|逃离^

答案 1 :(得分:-7)

CMD处理器太有限了,无法在此处执行操作,在此上下文中管道不合法。你可以用一个CALL替换你的ECHO存根到另一个批处理文件来克服它,但即便如此,你仍然会遇到问题。有关脚本环境选项的快速比较,请参阅Want to batch move all files from directories into the parent directory and delete the subdirectory

相关问题