@echo off
setlocal enabledelayedexpansion
set "MYFLAGS=/q:a /c:"2005_8~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn""""
echo %MYFLAGS%
REM OUTPUT: /q:a /c:"2005_8~1.EXE /q:a /c:""msiexec /i vcredist.msi /qn"""
REM Good output-----------------------------------------------------------
call :InstallProgram "vc_redist.exe" "%MYFLAGS%"
goto :eof
:InstallProgram
set "PROGRAM_FLAGS=%~2"
echo %PROGRAM_FLAGS%
REM OUTPUT: /q:a /c:"2005_8~1.EXE
REM Truncated output-------------^
goto :eof
无论我在语句MYFLAGS
内部还是外部定义call
都会产生相同的结果,:InstallProgram
函数中的回显会过早停止。
有什么想法吗?一定有批处理天才在某个地方。
enabledelayedexpansion
在我的脚本的其他部分是必需的。
我知道有人会问,最终目标是完全静默安装,不需要向用户提示重新启动。