我希望你可以帮我解决下面的代码...我已经在使用enableDelayedExpansion但我想知道为什么输出仍然与我之前使用的参数完全相同:
例如,如果我使用参数SERVERS:ALL运行我的脚本,我希望它输出SERVERS和ALL,但是当我第一次运行它时它总是显示第一个参数。想法?
set flag=false
setlocal enableDelayedExpansion
IF [%1] == [] (
set flag=false
) else (
set string=%1
echo String: !string!
set flag=true
for %%x in (%string::= %) do (
echo VAL is: %%x
endlocal
)
)
:END
popd
echo Ending %jobname% ... %check%
exit %check%
答案 0 :(得分:0)
这是一种没有延迟扩展的方法。我遗漏了旗帜,因为它们没有明显的目的。
@echo off
if not "%~1"=="" (
echo.input string=%~1
call :ParseString "%~1"
)
goto :eof
:ParseString
rem %1=string
for /f "tokens=1* delims=:" %%a in ('echo(%~1') do (
echo VAL is: %%a
call :ParseString "%%b"
)
goto :eof