2014-12-04 54 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"

不包括從分配值尾隨空格。