Inno Setup [Run]段含空格参数的处理方案咨询
解决Inno Setup [Run]段传带空格路径参数的问题
嘿,这个问题其实挺常见的——Windows命令行里空格是默认的参数分隔符,带空格的路径直接传会被拆成多个片段,批处理自然就识别错了。别担心,只要给每个带空格风险的参数用双引号包裹就行,不过在Inno Setup脚本里有个小细节要注意:单个双引号是用来界定字符串边界的,所以要表示实际传递的双引号,得用两个双引号""来转义。
看你的当前配置,只需要把参数部分的两个路径分别用""括起来就行,修改后的[Run]段应该是这样:
[Run] Filename: "{code:GetDirSQL|0}\installSQL\createBase\launchCreateParam.bat"; Parameters: """{code:GetDirSQL|0}\installSQL\createBase"" ""{code:GetDossier|0}"""; Description: {cm:LaunchProgram,LumisTraiteur}; StatusMsg: Création de la base de données...; Check: instalDossier
补充说明:
- 为什么用三个引号?因为Inno Setup会把连续的两个双引号
""解析成实际传递给命令行的一个双引号,所以"""路径"""最终会变成"路径"传递给批处理,这样命令行就能正确识别整个路径作为一个独立参数。 - 如果你的批处理里需要使用这些参数(比如
%1对应第一个路径,%2对应第二个),要是想去掉参数里的引号,可以用%~1、%~2这样的语法,比如在批处理里写:
这样就能得到不带引号的纯路径,避免后续操作中因为引号引发的其他问题。set "CREATE_BASE_DIR=%~1" set "DOSSIER=%~2"
内容的提问来源于stack exchange,提问作者Fabien Lucas
相关产品推荐
相关产品推荐

