如何批量使用/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
@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