2014-02-07 73 views
1

我想通過文本文件中的每一行進行循環,並將該行的內容用作變量。在變量文本文件中循環遍歷每行,批次

到目前爲止,我有:

for /F "tokens=*" %%A in (mdbs.txt) do (
set var1=%%A 
echo "%var1%" > echo1.txt 
echo %var1% > echo2.txt 
echo set v > set.txt 
echo %%A > echo3.txt 
) 

mdbs.txt的內容是目前: Grounds_Maintenance.mdb

所以我希望每個回聲文件含有 「Grounds_Maintenance.mdb」

但是它們包含:

Echo1.txt: 「」

Echo2.txt:ECHO開啓。

set.txt:集V

它通過文件但是循環,它只是不設置變量。

echo3.txt:Grounds_Maintenance.mdb

我一定是簡單的東西。我想使用一個變量,因爲我想稍後使用以下命令刪除擴展名:set var1 =%var1:〜0,-4%

我在Windows 7上。謝謝。

回答

4

變量已設置,但無法通過括號內的百分比擴展來訪問該變量。

存在着用於訪問變量的第二個方法,稱爲延遲擴展

setlocal EnableDelayedExpansion 

for /F "tokens=*" %%A in (mdbs.txt) do (
    set "var1=%%A" 
    echo "!var1!" 
) 
+0

'%out%%echo「!var1!」'爲我打印'!var1!'。 – m93a

+1

@ m93a然後,您應該使用'setlocal EnableDelayedExpansion'行啓用延遲擴展。 – jeb

3

傑布回答了你直接的問題。

但是,如果您只想剝離擴展名,則沒有理由分配環境變量。使用時只需將~n修改:

for /f "delims=" %%A in (mdbs.txt) do echo %%~nA 

類型help forfor /?從命令提示符,並期待在文件的結尾有關修飾符的更多信息。

+0

是的,這是這裏最好的解決方案 – jeb