Batch file 通过CMake管理NSIS CreateShortCut方法的快捷方式参数
首先,大家好 我想创建一个不提示DOS窗口的批处理文件的快捷方式。因此,我看到以下命令非常有效:Batch file 通过CMake管理NSIS CreateShortCut方法的快捷方式参数,batch-file,cmake,nsis,Batch File,Cmake,Nsis,首先,大家好 我想创建一个不提示DOS窗口的批处理文件的快捷方式。因此,我看到以下命令非常有效: wscript.exe invisible.vbs my_batch_file.bat 我的问题是,我想通过CMake和NSIS使用此命令创建快捷方式。我的问题是,在CMakeLists.txt文件中的以下命令中,似乎无法在“wscript.exe”之后提供多个参数: list(APPEND CPACK_NSIS_CREATE_ICONS " CreateShortCut '$
wscript.exe invisible.vbs my_batch_file.bat
我的问题是,我想通过CMake和NSIS使用此命令创建快捷方式。我的问题是,在CMakeLists.txt文件中的以下命令中,似乎无法在“wscript.exe”之后提供多个参数:
list(APPEND CPACK_NSIS_CREATE_ICONS "
CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\link.lnk' 'wscript.exe' 'invisible.vbs my_batch_file.bat' icon.ico 0 SW_SHOWMINIMIZED
")
“invisible.vbs”和“my_batch_file.bat”之间的空格未按我的预期进行解析(即作为空格…)。有人能帮我吗?非常感谢您的每一条评论(方法或代码提示) 我现在对NSIS一无所知,但也许这是一个正确方向的提示:
list(APPEND CPACK_NSIS_CREATE_ICONS "
CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\link.lnk' 'wscript.exe' 'invisible.vbs my_batch_file.bat' icon.ico 0 SW_SHOWMINIMIZED
")
也可能,“invisible.vbs my_batch_file.bat”必须是“invisible.vbs my_batch_file.bat”-以后面的空格开头
编辑:
您是否尝试过使用
“
而不是”
?我使用“NSIS.template.in”文件解决了问题,我在该文件中创建了以下宏
!macro CreateShortcutBat link bat_file
CreateShortCut '$SMPROGRAMS\\$STARTMENU_FOLDER\\${link}' 'wscript.exe' 'invisible.vbs ${bat_file}' icon.ico 0 SW_SHOWMINIMIZED
!macroend
然后在我的CMakeLists.txt文件中,我只需要以这种方式调用宏:
list(APPEND CPACK_NSIS_CREATE_ICONS "
!insertmacro CreateShortcutBat 'Shortcut.lnk' 'my_batch_file.bat'
")
它使用CPACK_NSIS_CREATE_ICONS_EXTRA和CPACK_NSIS_DELETE_ICONS_EXTRA来实现结果。这里使用的示例有两个命令行参数,因此您应该能够通过简单的修改来使用那里的代码。它还显示了如何在您完成后进行清理,并让卸载程序删除短代码谢谢你的尝试,但不幸的是,这两种可能性都没有产生正确的nsis代码行…我会继续搜索是的,当然。我只是省略了完整的路径,因为行已经足够长了。但是谢谢你的注意。