我的输入文件如下:
application database variable value
+-------------------+-------------------+-------------------+-------------------
O_PrTot Rptg ClosedMonthsFY13 Jan:Dec
O_PrTot Rptg OMNICORE_Year FY14
O_PrTot Rptg ClosedMonthsFY14 Jan:Oct
我需要找到ClosedMonthsFY14的值,即Jan:Oct并输出此输出 进入.txt文件。
谢谢
答案 0 :(得分:0)
根据您的标题“输出基于匹配字符串的整行”和您的评论“并将此输出放入.txt文件”,这应该可行。我们使用FINDSTR
命令,根据我链接的TechNet文章,“使用正则表达式搜索文件中的文本模式”。在这种情况下,我们并不特别需要正则表达式,但它仍然有效:
FINDSTR /I "ClosedMonthsFY14" C:\path\to\input.txt > C:\path\to\output.txt
切换/I
表示使搜索不区分大小写。
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
FOR /f "tokens=3,4" %%a IN (q27307586.txt) DO IF /i "%%a"=="ClosedMonthsFY14" SET "outstring=%%b"
ECHO %outstring%
FOR /f "delims=" %%a IN ('findstr /i "ClosedMonthsFY14" q27307586.txt') DO SET "outstring2=%%a"
ECHO %outstring2:~61%
GOTO :EOF
我使用了一个名为q27307586.txt
的文件,其中包含我的测试数据。
这里有两种不同的方法。第一种方法依赖于这样的假设:每列只包含一个不包含空格或逗号等分隔符的字符串。
第二种方法使用列位置;将跳过所选行中的61个字符,并将其余字符分配给变量。
要将变量实际输出到文件,只需将>"filename"
附加到相应的echo
行
请注意,第二种方法会在行上保留尾随空格,这可能适用于您的目的,也可能不适用。
每种情况下的/i
开关都会使字符串匹配不区分大小写。
(您的问题标题指出“整行”但您的叙述说您需要找到值)