如何批量使用/f "tokens=*" 中的变量

how to use variable inside for /f "tokens=*" in batch

@echo off
@CHOICE /C:123
if "%ERRORLEVEL" == "1" GOTO one
if "%ERRORLEVEL" == "2" GOTO two
if "%ERRORLEVEL" == "3" GOTO three

:one
set name = input
goto loop

:two
set name = input1
goto loop

:three
set name = input2
goto loop

:loop
for /f "tokens=*" %%a in (%name%.txt) do (
echo %%a
cls
)
pause

输出是

The system cannot find the file .txt

只是想知道如何调用名称中的变量。这是第一次使用批处理,不知道该怎么做。非常感谢。

谢谢

删除 set 语句中 = 周围的空格。您实际上是在创建一个名为 name<space> 的变量。

根据我的评论:

@Echo Off
Choice /C:123
If "%ErrorLevel%"=="1" GoTo one
If "%ErrorLevel%"=="2" GoTo two
If "%ErrorLevel%"=="3" GoTo three

:one
Set "name=input"
GoTo loop

:two
Set "name=input1"
GoTo loop

:three
Set "name=input2"

:loop
For /F Delims^=^ EOL^= %%A In (%name%.txt) Do (Echo %%A
    Timeout 1 /NoBreak>Nul
    ClS)
Pause


或者:

@Echo Off
Set "name=input"
Choice /C:123
If ErrorLevel 3 Set "name=%name%2" & GoTo loop
If ErrorLevel 2 Set "name=%name%1"

:loop
For /F Delims^=^ EOL^= %%A In (%name%.txt) Do (Echo %%A
    Timeout 1 /NoBreak>Nul
    ClS)
Pause