Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gruntjs 如何使用Grunt生成具有特殊字符的windows命令行?_Gruntjs_Inno Setup - Fatal编程技术网

Gruntjs 如何使用Grunt生成具有特殊字符的windows命令行?

Gruntjs 如何使用Grunt生成具有特殊字符的windows命令行?,gruntjs,inno-setup,Gruntjs,Inno Setup,我在窗户上。为了构建我的应用程序,我曾经做过很多手动文件操作,并在最后一步运行以下命令: "c:\Program Files\Inno Setup 5\ISCC.exe" /dType=server /dBits=32 /dArchAllowed="x86 x64" config.iss 请注意,/d选项用于将一些自定义变量传递给Inno Setup 最近情况发生了变化,我们决定使用Grunt自动化任务。所有文件操作都工作正常。但我无法正确执行最后一步(运行命令行) 我试过: grunt.ta

我在窗户上。为了构建我的应用程序,我曾经做过很多手动文件操作,并在最后一步运行以下命令:

"c:\Program Files\Inno Setup 5\ISCC.exe" /dType=server /dBits=32 /dArchAllowed="x86 x64" config.iss
请注意,
/d
选项用于将一些自定义变量传递给Inno Setup

最近情况发生了变化,我们决定使用Grunt自动化任务。所有文件操作都工作正常。但我无法正确执行最后一步(运行命令行)

我试过:

grunt.task.registerTask('create-exe', 'create the installer', spawnTask({
    cmd: 'c:\\Program Files\\Inno Setup 5\\ISCC.exe', 
    args: ['/dType=server' , '/dBits=32' ,'/dArchAllowed="x86 x64"', 'config.iss' ]
}));
但Inno安装程序并不满意:

stderr: 'Error on line 38 in config.iss: 
Value of [Setup] section directive "ArchitecturesAllowed" is invalid.',
因此,参数
/dArchAllowed=“x86 x64”
(如果我删除它,它正在运行。但我需要这个参数。)这是一个令人讨厌的参数:它有双引号,相等和空格!我尝试了很多组合来逃避特殊角色,但没有成功

有什么想法吗?谢谢

我找到了答案

/d
命令行编译器参数值不能用双引号括起来。因此,我在
args
属性中将
'/dArchAllowed=“x86 x64”
替换为
'/dArchAllowed=x86 x64'

整个grunt任务是:

grunt.task.registerTask('create-exe', 'create the installer', spawnTask({
    cmd: 'c:\\Program Files\\Inno Setup 5\\ISCC.exe', 
    args: ['/dType=server' , '/dBits=32' ,'/dArchAllowed=x86 x64', 'config.iss' ]
}));

有没有办法看到“无效”指令值?除了跳过初始斜杠之外,它应该可以正常工作,但是如果看不到“无效”值是什么,就很难说出哪里出了问题。@jakerella不,对不起,我试图看到这里拒绝了什么,但我找不到一个选项。