@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
只想知道如何在名称中调用变量。这是第一次使用批处理,不知道该怎么办。非常感谢。
谢谢
答案 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