2014-12-04 82 views
1

我想要做的是后内设置一个变量的值,我有一个txt文件(LIST.TXT),并通过批处理脚本我想读(逐行) txt文件并将该行保存在某个变量中供以后使用。跟着我正在尝试的btch脚本,但不知道为什么它不工作?无法在批处理文件中环甚至设置EnableDelayedExpansion

@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 

和O/P是: -

ECHO is off 
ECHO is off 
ECHO is off 

我要的是:

abc|def 
1234|defg 
abcde|98745 

谁能帮我出去了吗?

+1

的重复[为什么是与“回声%VAR%”没有字符串输出使用命令行上的“设置VAR =文本”后?](http://stackoverflow.com/questions/26386697/why-is-no- string-output-with-echo-var-after-using-set-var-text-on-comman)使用'set_var = %% a'在等号周围没有空格,你的批处理代码就可以工作。 – Mofi 2014-12-07 18:29:59

+0

'set _filePath = List.txt'也不正确,因为您的列表文件很可能不是以文件名中的空格字符开头的。但是这个错误会自动纠正。 – Mofi 2014-12-07 18:37:43

回答

0

虽然评论是正确的,但作者并未关闭该问题,因此可能需要更多的细节。 批处理脚本中还存在另一个处理文件中空行的错误(这会导致echo给出错误的输出)。该批处理文件的固定版本是:

@echo off 
set _filePath=List.txt 
setlocal enabledelayedexpansion 
for /f "tokens=*" %%a in (%_filePath%) do (
    set _var=%%a 
    echo;!_var! 
) 
1
set _var = %%a 

简单的问题 - set空间上的=的两个两侧敏感。

使用set "var=value"

不包括从分配值尾随空格。

相关问题