好吧,作爲循環的一部分,我正在讀取未知數量的文件名,並將其保存到名稱取決於數字的變量中文件夾中的文件。就像這樣:.bat文件 - 輸出變量的名稱作爲變量存儲的值
SET /a count=1
DIR %rootFolder%> "fileList.txt" /b
FOR /f "tokens=* delims= usebackq" %%a IN ("fileList.txt") DO CALL :LOOP %%a
goto :LOOP2
:Loop
SET var=%1
SET File%count%=%var%
SET /a count=%count%+1
GOTO:EOF
這工作得很好
ECHO File1
ECHO File2
輸出
firstfile.txt
secondfile.txt
我在被讀出變量的內容在以後的循環,因爲這段代碼的問題:
SET fileName=File%count%
ECHO %fileName%> temp.txt
outputs
File1
當我希望它通過該名稱輸出存儲在變量中的值。 所需輸出:
firstfile.txt
有沒有辦法做到這一點?
+1,可能應該在DIR命令中添加/ a-d選項,以將輸出限制爲文件並消除文件夾。而且,如果文件名包含'!'字符,這將失敗。 – dbenham
對於!你可以使用類似set的變通方法var =%var:!= ^!% –
在這種情況下,有很多原因可以解決這個問題:該值不在環境變量中;爲了得到它,你必須展開%% a,並且你回到了你開始的地方。也不能在定義它的相同代碼塊中使用%var%,因此首先需要延遲擴展。 – dbenham