Batch file 即使在设置EnableDelayedExpansion之后,也无法在批处理文件中的循环内设置变量值
我想做的是,我有一个文本文件(List.txt),通过批处理脚本,我想读取(逐行)文本文件,并将该行保存在某个变量中供以后使用。下面是我正在尝试的批处理脚本,但不知道为什么它不工作Batch file 即使在设置EnableDelayedExpansion之后,也无法在批处理文件中的循环内设置变量值,batch-file,Batch File,我想做的是,我有一个文本文件(List.txt),通过批处理脚本,我想读取(逐行)文本文件,并将该行保存在某个变量中供以后使用。下面是我正在尝试的批处理脚本,但不知道为什么它不工作 @echo off set _filePath= List.txt @echo off setlocal enabledelayedexpansion for /f "tokens=*" %%a in (%_filePath%) do ( set _var = %%a echo !_var! ) List.tx
@echo off
set _filePath= List.txt
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (%_filePath%) do (
set _var = %%a
echo !_var!
)
List.txt文件具有:
abc|def
1234|defg
abcde|98745
输出为:-
ECHO is off
ECHO is off
ECHO is off
我想要的是:
abc|def
1234|defg
abcde|98745
有人能帮我解决这个问题吗?虽然评论是正确的,但作者还没有结束这个问题,所以可能需要更多的细节。 批处理脚本中还有另一个错误,用于处理文件中的空行(这会导致echo给出错误的输出)。批处理文件的固定版本为:
@echo off
set _filePath=List.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (%_filePath%) do (
set _var=%%a
echo;!_var!
)
简单问题-set
对=
两侧的空格敏感
使用设置“var=value”
这将从指定的值中排除尾随空格。重复使用
set _var=%%a
在等号周围没有空格,批处理代码将正常工作。set _filePath=List.txt
也不正确,因为列表文件很可能不是以文件名中的空格字符开头的。但是这个错误是自动纠正的。
set _var = %%a