我正在尝试解析另一个函数的输出,该函数是逐行输出的。为了理解该函数,它返回几行参数和数字,如“ top=123456789
”或“ low=123456789
”(不带引号) -
我现在尝试用
for /F "delims=" %%a in ('%%I ^| findstr top') do set updir=%%1
set "updir=%1:~4%"
echo. %updir%
我试图通过修剪已知关键字(如 top)来获得纯数字,然后需要将其设置为 var 以将(%~1% ???
)返回到调用函数(其他批处理文件)。
有人可以帮我吗?舒尔最好从“=”修剪。
更新:
这是从我链接的脚本中返回行的代码。我尝试了几种方法来解析返回,但我似乎是盲人或太愚蠢,看不到,一切都变得很奇怪。
for /f "delims=" %%I in ('cscript /nologo /e:jscript "%~f0" "%URL%"') do (
rem process the HTML line-by-line
org echo(%%I
try1 (echo %%I|findstr top
try2 for /F "delims=" %%a in ('%%I ^| findstr top') do set updir=%%a
try2 echo. %updir%
try3 for /F "delims=" %%a in ('%%I') do findstr top
try3 echo. %2%
)
也没有用
for /F "tokens=1,2delims==" %%a in ('%%I') do if %1 == top set updir=%%b
echo %updir%
我尝试了下面的两个 delim 版本(too the tokens/delims 版本),但我没有做对。
更新解决方案:
对于那些在这里阅读问题的人一些额外的评论:
rem trim whitespace from beginning and end of line
for /f "tokens=*" %%x in ("%%~I") do set "line=%%x"
rem test that trimmed line matches "variable=number"
to find a single item like e.g. "top" you have to add "to" or adjust whole first token
回声!线!| findstr /i "^ to
[az] =[0-9] " >NUL && (
rem test was successful. Scrape number.
for /f "tokens=2 delims==" %%x in ("%%I") do set "value=%%x"
echo !value!
)