我正在尝试使用批处理脚本删除一些基于正则表达式的文件。我所拥有的是:
FOR /f "tokens=*" %%a in ('dir /b | findstr MY_REGEX_HERE') DO ECHO %%a
我知道我的内部命令可以独立工作,给我目录列表,但是当我将它嵌入到for循环中时,我得到一个错误| was unexpected at this time.
在FOR循环命令中不允许使用管道吗?或者我需要逃避它或什么?
任何有关我如何做到这一点的帮助都会很棒。
答案 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。