ウィンドウズ
投稿 ( dos batch iterate through a delimited string ) に基づいて、以下のスクリプトを作成しましたが、期待どおりに動作しませんでした。
目標: 文字列 "Sun,Granite,Twilight" が与えられた場合、ループ内の各テーマ値を取得して、値を処理できるようにします。
現在の出力が正しくありません:
list = "Sun,Granite,Twilight"
file name is "Sun Granite Twilight"
最初の反復では、次のようになります。
list = "Sun,Granite,Twilight"
file name is "Sun"
次に、2回目の繰り返しは「ファイル名は「Granite」などです。何が間違っていますか?
コード:
set themes=Sun,Granite,Twilight
call :parse "%themes%"
goto :end
:parse
setlocal
set list=%1
echo list = %list%
for /F "delims=," %%f in ("%list%") do (
rem if the item exist
if not "%%f" == "" call :getLineNumber %%f
rem if next item exist
if not "%%g" == "" call :parse "%%g"
)
endlocal
:getLineNumber
setlocal
echo file name is %1
set filename=%1
endlocal
:end