本帖最后由 aloha20200628 于 2024-12-14 20:31 编辑
回复 11# fzp070
如果一楼示例字符串中包含 |& 等cmd转义字符,须用双引号包裹字符串变量 line 赋值表达式,须用双引号包裹 echo 输出数据,须将 for %%a in (%line%) ... 句式改为变量延迟句式以便逃逸 cmd 对 %line% 的预处理... 据此已订正8楼代码。
如果源数据被存入文本文件(假定为 1.txt)且只有一行,可用以下版本- @echo off &setlocal &set "go=1" &set "ok="
- for /f "delims=" %%a in (1.txt) do for %%x in (%%a) do if defined go if /i "%%x"=="SESSDATA" (set/a "ok=1") else if defined ok (set "go=" &set "v=%%x")
- set/p="SESSDATA=%v%"<nul&echo,&pause&exit/b
复制代码 若用 grep 一行流则可提取出 1.txt 中每行(若不止一行数据)的目标字段 "SESSDATA=...",并可定向输出到 2.txt- type "1.txt"|grep -o "SESSDATA=[^;]*">"2.txt"
复制代码
|