4

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

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

我知道我的内部命令自己工作,给了我目录列表,但是当我像这样将它嵌入到 for 循环中时,我得到一个错误| was unexpected at this time. FOR 循环命令中不允许管道?或者我需要逃避它还是什么?

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

4

2 回答 2

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

|在它之前使用 a转义^

于 2013-08-22T16:37:48.553 回答
-7

CMD 处理器太有限了,无法在这里做你想做的事,管道在这种情况下是不合法的。您可以将 ECHO 存根替换为对另一个批处理文件的 CALL 替换,但即便如此,您仍然会遇到问题。请参阅想要将所有文件从目录批量移动到父目录并删除子目录以快速比较脚本环境选项。

于 2013-08-22T16:40:37.013 回答