我有一个正在迭代的字符串列表,需要排除某些字符串,并在后续处理中包括其他字符串。
像这样的:

listmystuff | for /F "usebackq" %%D in (`findstr /r "something*" ^| findstr /v "but not thisstuff"`)  do interestingthing

这是错误的。有效的方法是有一个findstr,但不是两者都有。
什么是正确的?

最佳答案

您需要管道,而不是条件命令连接。管道字符必须转义。
您只需要在整个命令周围使用一组单引号。(如果使用|选项,则为反勾号)
如果在批处理文件中使用,则需要将百分比加倍。
您的初始findstr需要一个filespec来搜索(否则数据将通过管道传输到其中)

for /f "options" %%D in ('findstr "something" fileSpec ^| findstr /v "butNotThis"') do myThing

关于windows - Windows批处理:for和findstr包括和排除结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21563984/

10-09 03:41