行ごとに出力される別の関数の出力を解析しようとしています。関数を理解するために、数行のパラメーターと " 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 バージョン (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!
)