我使用批处理脚本start.bat
运行我的程序。我为此创建了一个快捷方式,如下所示:
[Icons]
Name: "{group}{#MyAppName}"; Filename: "{app}start.bat";
IconFilename: "{app}{#MyAppIcoName}"; Tasks: desktopicon
Name: "{userdesktop}{#MyAppName}"; Filename: "{app}start.bat";
IconFilename: "{app}{#MyAppIcoName}"; Tasks: desktopicon
为了允许用户将批处理文件的快捷方式拖到任务栏(Windows 10),我必须将快捷路径从E:SoftMyProgramstart.bat
修改为cmd /c E:SoftMyProgramstart.bat
。但是我不能改变路径到Filename: "cmd /c {app}start.bat";
,它不起作用。什么好主意吗?
cmd /c E:SoftMyProgramstart.bat
以上命令以/c E:SoftMyProgramstart.bat
为参数执行cmd.exe
程序。
在Inno SetupIcons
部分中,使用Parameters
parameter指定参数:
[Icons]
Name: "{userdesktop}{#MyAppName}"; Filename: "cmd";
Parameters: "/c E:SoftMyProgramstart.bat";
IconFilename: "{app}{#MyAppIcoName}"; Tasks: desktopicon
- 虽然不是硬编码
cmd
,你应该使用{cmd}
常数。 同样,我假设你应该使用 - 将路径用双引号括起来,以防包含空格。
- 在某些情况下,批处理文件可能被设计为仅在从其目录执行时才工作。添加
WorkingDir
参数
{app}
而不是E:SoftMyProgram
。[Icons]
Name: "{userdesktop}{#MyAppName}"; Filename: "{cmd}";
Parameters: "/c ""{app}start.bat"""; WorkingDir: "{app}"
IconFilename: "{app}{#MyAppIcoName}"; Tasks: desktopicon
Martin建议https://stackoverflow.com/a/69083021/13116250以下是修改脚本的解决方案:
Name: "{group}{#MyAppName}"; Filename: {cmd}; Parameters: "/c cd /d ""{app}"" && launch.bat"; IconFilename: "{app}{#MyAppIcoName}"; Tasks: desktopicon
Name: "{userdesktop}{#MyAppName}"; Filename: {cmd}; Parameters: "/c cd /d ""{app}"" && launch.bat"; IconFilename: "{app}{#MyAppIcoName}"; Tasks: desktopicon
你应该先cd到app目录,然后运行批处理文件。