我有一个我正在迭代的字符串列表,我需要排除某些字符串,并在后续处理中包含其他字符串。 像这样:
listmystuff | for /F "usebackq" %%D in (`findstr /r "something*" ^| findstr /v "but not thisstuff"`) do interestingthing
这是错误的。什么工作有一个发现,但不是两个。 什么是对的?
答案 0 :(得分:2)
您想要一个管道|
,而不是条件命令连接&&
。必须转义管道字符。
您只需要围绕整个命令使用一组单引号。 (如果使用usebackq
选项,则为反对)
如果在批处理文件中使用,则需要加倍百分比。
您的初始FINDSTR需要一个文件规范来搜索(或者管道传输的数据)
for /f "options" %%D in ('findstr "something" fileSpec ^| findstr /v "butNotThis"') do myThing
答案 1 :(得分:0)
使用show databases命令运行此命令。这是使用for命令解析数据的常用方法。
for /F "delims=" %%D in ('show databases ^| findstr /r "something*" ^| findstr /v /c:"but not thisstuff" ') do echo %%D