Windows 以下批处理代码有什么问题? @echo关闭 对于/L%%g in(1 1 2)do( 对于/F“delims=“%%l IN('findstr/i”“output.txt'),DO set name=%%l 对于/F"tokens=3 delims=>
在第一个块中,您正在Windows 以下批处理代码有什么问题? @echo关闭 对于/L%%g in(1 1 2)do( 对于/F“delims=“%%l IN('findstr/i”“output.txt'),DO set name=%%l 对于/F"tokens=3 delims=>,windows,batch-file,Windows,Batch File,在第一个块中,您正在FOR块中设置name和email变量。如果要访问此值,则必须启用延迟扩展。如果没有延迟扩展,则只有在循环启动时才会解析FOR循环的内容h点name和email没有值 此编辑应使块工作: @echo off for /L %%g in (1 1 2) do ( call :sub ) :sub FOR /F "delims=" %%l IN ('findstr /i "<h1>" output.txt') DO set name=%%l FOR /F "token
FOR
块中设置name
和email
变量。如果要访问此值,则必须启用延迟扩展。如果没有延迟扩展,则只有在循环启动时才会解析FOR
循环的内容h点name
和email
没有值
此编辑应使块工作:
@echo off
for /L %%g in (1 1 2) do (
call :sub
)
:sub
FOR /F "delims=" %%l IN ('findstr /i "<h1>" output.txt') DO set name=%%l
FOR /F "tokens=3 delims=><" %%l IN ("%name%") DO echo %%l
FOR /F "delims=" %%m IN ('findstr /i /r ".*@.*\..*</label>" output.txt')DO set email=%%m
FOR /F "tokens=3 delims=><" %%m IN ("%email%") DO echo %%m
@echo关闭
REM打开延迟扩展选项。
SETLOCAL EnableDelayedExpansion
REM注意“姓名”和“电子邮件”是如何用感叹号包装的。
REM这是延迟扩展符号。
对于/L%%g in(1 1 2)do(
对于/F“delims=“%%l IN('findstr/i”“output.txt'),DO set name=%%l
对于/F“tokens=3 delims=>非常感谢……)
@echo off
for /L %%g in (1 1 2) do (
call :sub
)
:sub
FOR /F "delims=" %%l IN ('findstr /i "<h1>" output.txt') DO set name=%%l
FOR /F "tokens=3 delims=><" %%l IN ("%name%") DO echo %%l
FOR /F "delims=" %%m IN ('findstr /i /r ".*@.*\..*</label>" output.txt')DO set email=%%m
FOR /F "tokens=3 delims=><" %%m IN ("%email%") DO echo %%m
@echo off
REM Turn on the delayed expansion option.
SETLOCAL EnableDelayedExpansion
REM Note how "name" and "email" is wrapped in exclamation marks below.
REM This is delayed expansion notation.
for /L %%g in (1 1 2) do (
FOR /F "delims=" %%l IN ('findstr /i "<h1>" output.txt')DO set name=%%l
FOR /F "tokens=3 delims=><" %%l IN ("!name!") DO echo %%l
FOR /F "delims=" %%m IN ('findstr /i /r ".*@.*\..*</label>" output.txt')DO set email=%%m
FOR /F "tokens=3 delims=><" %%m IN ("!email!") DO echo %%m
)
ENDLOCAL