问题描述
我有以下定义:!define /date Now "%Y-%b-%d_%H-%M-%s"
当这样创建输出文件时:OutFile "..\my_app_name_Setup-x64_${Now}_Build_${__COUNTER__}.exe"
编译成功。但是,当我将格式更改为:!define /date Now "%Y-%b-%d_%H:%M:%s"
(有效的用小时,分钟和秒用冒号将连字符更改)时,它不再能成功编译。 (编译错误“最后无法打开Outfile”。)
两(2)个问题:
也许安德斯(Anders)可以对此有所启发;)
添加2。按照https://nsis.sourceforge.io/mediawiki/index.php?title=Reference/!define&oldid=24774 tmy格式("%Y-%b-%d_%H:%M:%s"
是正确的。(可能会贬值(?)
解决方法
冒号在Windows上的文件名中不合法。参见Naming Conventions: reserved characters。
如果您在POSIX上进行编译,从理论上讲是合法的,但毫无意义,因为如果不重命名就无法执行安装程序。