批处理中的findstr没有给出文本之间具有“!”的字符串的预期结果

时间:2014-05-23 19:55:22

标签: windows batch-file findstr

我有一个批处理文件,它从文件(.txt或.js)获取最后一行。 但是,如果我的结束字符串(或行)有任何"!" mark,我没有得到预期的字符串(或行)。

批处理文件如下所示:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%s in ('findstr /r /i /c:":" %1' ) do set LASTLINE=%%s
echo !LASTLINE!

因此,对于我的输入文件,即sample.txt:

BEGIN
Country : US
Country : UK
Text : Welcome! Pleasure to have you here.
END

我得到了:

  

文字:欢迎您的到来。

预期:

  

文字:欢迎!很高兴你能来这里。

任何帮助表示赞赏!!

1 个答案:

答案 0 :(得分:2)

ENABLEDELAYEDEXPANSION移到for循环下方,这样就不会干扰您的内容

@echo off
for /f "delims=" %%s in ('findstr /r /i /c:":" %1' ) do set LASTLINE=%%s
SETLOCAL ENABLEDELAYEDEXPANSION
echo !LASTLINE!