2014-01-29 81 views
3

我想寫一個批處理,它從ini文件中提取參數的值。問題是,這個for循環迭代兩次:批處理文件:for循環運行兩次

call:ini DW_LOADER_FeedsRootDir UDM_Folder 
:ini 
for /f "tokens=2 delims==" %%U in ('find "%~1=" DW_environmentConfig.ini') do (
set %~2=%%U 
) 

批次未在此行之後結束,隨後所有的命令也重複兩次。 循環後我不能使用像'goto:eof'這樣的命令。 有沒有人有一個想法,爲什麼發生這種情況?

回答

5

當您使用CALL:INI批處理調用您的函數,並且當它結束時,它將返回到CALL命令點,然後再次轉到:ini標籤。

試試:

call:ini DW_LOADER_FeedsRootDir UDM_Folder 
goto:eof 
:ini 
for /f "tokens=2 delims==" %%U in ('find "%~1=" DW_environmentConfig.ini') do (set %~2=%%U)