我有一个问题,我不知道该怎么解决。我需要搜索一个 txt 文件,其中搜索字符串位于顶部,但实际需要的数据位于下一行。
示例:所以我刚刚注意到并不是我的问题全部都显示了出来,示例下面是一个实际的例子。
{< Setting name= "SerialNumber" serializeAs= "String" >}
{< Value > I-Need-This-Data < /value >}
我已经创建了脚本,我只需要帮助创建 FOR 命令,这样我就可以将变量设置为我需要在脚本中使用的数据。
For /f "delim?/token" %%a in (findstr "Serial Number" d:\...\text.txt ) do set SN=%%a
我不确定 token 或 delim。我该如何输入“for”才能让它在找到序列号后查看第二行?
答案1
- 批处理文件:
for /f tokens^=3delims^=^<^/^> %%i in ('type file.txt ^| findstr /i "Value"')do set "_sn=%%~i"
- 命令行:
for /f tokens^=3delims^=^<^/^> %i in ('type file.txt ^| findstr /i "Value"')do set "_sn=%~i"
>for /f tokens^=3delims^=^<^/^> %i in ('type file.txt ^| findstr /i "Value"')do set "_sn=%~i"
>set "_sn= I-Need-This-Data "
观察:要通过删除前后空格来提取字符串,请使用SPACE作为分隔符:
< Value > I-Need-This-Data < /value >
使用多个定界符(包括空格):
for /f tokens^=3delims^=^<^/^>^SPACE %i
>for /f tokens^=3delims^=^<^/^>^ %i in ('type file.txt ^| findstr /i "Value"')do set "_sn=%~i"
>set "_sn=I-Need-This-Data"