在NSIS脚本中不使用重命名重命名目标文件

inq*_*uam 3 nsis

如果我使用以下文件复制文件

SetOutPath "$FOO_DIR"
File "..\..\Bar.Dat"

...

SetOutPath "$OTHER_FOO_DIR"
File "..\..\Bar.Dat"
Run Code Online (Sandbox Code Playgroud)

请注意,文件Bar.Dat应该在安装过程中稍后复制到其他位置.如何为此特定复制操作重命名?如果我对其进行重命名,以后的操作将无法找到它.我一直在寻找一个选项,将目标文件名传递给File操作,但找不到.

mic*_*cks 8

实际上尝试了以上但nsis编译器抱怨.一点点重新排列会使它工作:

File /oname="DestinationNameOfFile.Dat" "..\..\Bar.Dat"
Run Code Online (Sandbox Code Playgroud)

*源文件名是/ oname的第二个参数

  • 使用引号时出错.从目标文件名中删除引号会修复它.版本2.46 (2认同)
  • 如果输出名称包含空格,则引用整个参数,包括/oname,即:`File "/oname=nome with paths.txt" "Original name.txt"` (2认同)

inq*_*uam 6

当然,我在发布这个问题之后立即找到答案.*咂嘴*

实际上,文件确实采用了目标名称的标志.

 File "..\..\Bar.Dat" /oname="DestinationNameOfFile.Dat"
Run Code Online (Sandbox Code Playgroud)