如何在/ f“ tokens = *”中批量使用内部变量

时间:2018-08-30 19:48:48

标签: batch-file batch-processing

@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

输出为

  

系统找不到文件.txt

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

谢谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

根据我的评论:

@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