For loop 循环并解析dos文件中的字符串

For loop 循环并解析dos文件中的字符串,for-loop,scripting,batch-file,dos,command-line-arguments,For Loop,Scripting,Batch File,Dos,Command Line Arguments,我试图用DOS命令解析命令行中的一行字 如果该字符串包含(“0”),则我希望将其存储在一个文件中。 例如: 有人能纠正我的语法或以任何方式指导我吗?编辑 在重读你的问题后,我不完全确定你想要什么。你是说你想把整行内容转储到文本文件中,而不仅仅是匹配项 我还不清楚还有什么。是get_list.txt包含PHP ish代码,还是包含要检查PHP ish代码的文件列表 如果get_list.txt是代码,并且您希望将匹配行转储到get_id.txt,那么您所需要的就是findstr“\(“get_li

我试图用DOS命令解析命令行中的一行字

如果该字符串包含(“0”),则我希望将其存储在一个文件中。 例如:

有人能纠正我的语法或以任何方式指导我吗?

编辑

在重读你的问题后,我不完全确定你想要什么。你是说你想把整行内容转储到文本文件中,而不仅仅是匹配项

我还不清楚还有什么。是
get_list.txt
包含PHP ish代码,还是包含要检查PHP ish代码的文件列表

如果
get_list.txt
是代码,并且您希望将匹配行转储到
get_id.txt
,那么您所需要的就是
findstr“\(“get_list.txt”>>“get_id.txt”


以下答案是根据我最初的假设提交的,即
get_id.txt
中所需的全部内容都是精确匹配的,例如,字符串中的单词
match
(“
match
”)


路径1

如果我是你,我会这样做。它可以用for循环完成,但用grep可以更容易地完成

grep -P -o "(?<=_\([\'\"])\w+" get_list.txt >> get_id.txt
不需要外部实用程序或“FOR”。请尝试此行:

 >get_id.txt findstr _(\" get_list.txt
“转义”引用设计。 以下行将不起作用:

 findstr _(\" get_list.txt >get_id.txt

超级用户可能会更幸运。
grep -P -o "(?<=_\()[^\)]+" get_list.txt | grep -P -o "\w+" >> get_id.txt
@if (@x==@y) @end /*

:: batch portion

@echo off
setlocal
for /f "delims=" %%I in ('findstr "_(" "get_list.txt"') do (
    cscript /nologo /e:jscript "%~f0" %%I >> get_id.txt
)

goto :EOF

:: JScript portion */
var m=WSH.arguments(0).match(/_\([\'\"]?\w+/g);
for (var i=0; i<m.length; i++ ) {
    WSH.echo(m[i].replace(/_\([\'\"]?/,''));
}
@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%I in ('findstr "_(" "get_list.txt"') do (
    for %%x in (%%I) do (
        set word=%%x
        set word=!word:_^(=!
        if not !word!==%%x (
            set word=!word:"=!
            set word=!word:'=!
            >> get_id.txt echo !word:^)=!
        )
    )
)
 >get_id.txt findstr _(\" get_list.txt
 findstr _(\" get_list.txt >get_id.txt