Batch Script to delete files based on findstr regex

久未见 提交于 2020-01-13 18:08:47

问题


I'm trying to delete some files with a batch script, based on a regular expression. What I have is:

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

I know my inner command works on its own, giving me the list of directories, but when I embed it in the for loop like this I get an error | was unexpected at this time. Is piping not allowed within FOR loop commands? Or do I need to escape it or something?

Any help on how I can do this would be great.


回答1:


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

Escape the | using a ^ before it.




回答2:


The CMD processor is just too limited to do what you want here, pipe is not legal in this context. You could kludge it with replacing your ECHO stub with a CALL to another batch file, but even then you will still have problems. See Want to batch move all files from directories into the parent directory and delete the subdirectory for my quick comparion of scripting environments options.



来源:https://stackoverflow.com/questions/18386164/batch-script-to-delete-files-based-on-findstr-regex

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!