Windows Batch:供findstr包括并排除结果



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

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

这是错误的。有效的是拥有Findstr之一,但并非两者兼而有之。什么是对的?

您想要一个管道|,而不是条件命令串联&&。必须逃脱管道字符。

您只需要在整个商人周围进行一组单引号。(或使用usebackq选项,或者是回头的)

如果在批处理文件中使用,则需要将Percents加倍。

您的初始Findstr需要filespec才能搜索(或者否则数据输送到其中)

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

使用您的show数据库命令进行此运行。这是使用命令解析数据的通常方法。

for /F "delims=" %%D in ('show databases ^| findstr /r "something*" ^| findstr /v /c:"but not thisstuff" ')  do echo %%D

最新更新