NSIS-CopyFiles指令不使用变量作为参数?

NSIS-CopyFiles指令不使用变量作为参数?,nsis,Nsis,我想将文件/文件夹从最终用户系统的一个文件夹复制到最终用户系统的另一个文件夹。 但是,当将$0、$1等变量作为源参数传递时,CopyFiles指令似乎不起作用 ... SetRegView 64 ReadRegStr $0 HKLM "${PRODUCT_HOME_ROOT}\$1" "License" MessageBox MB_OK "$0" CreateDirectory '"$INSTDIR\application\license"' CopyFiles "$0" "$INST

我想将文件/文件夹从最终用户系统的一个文件夹复制到最终用户系统的另一个文件夹。 但是,当将$0、$1等变量作为源参数传递时,CopyFiles指令似乎不起作用

...
SetRegView 64
ReadRegStr $0 HKLM "${PRODUCT_HOME_ROOT}\$1" "License"
MessageBox MB_OK "$0"     
CreateDirectory '"$INSTDIR\application\license"'
CopyFiles "$0" "$INSTDIR\application\license"
将检查存储在$0中的字符串,该字符串与文件的绝对路径相同。 如果我将源参数作为“C:\path\u to\u folder”传递,CopyFiles指令将正常工作。
我做错了什么?

一个变量应该可以工作,但是该变量中存储的实际字符串不应该被双引号引用,它应该只使用反斜杠(
\
),而不是正斜杠(
/


还尝试通过
将变量值存储在另一个变量中!定义指令,。。也不工作,。。另外,在
CopyFiles“$0\*.*”中使用
*.*.
不起作用“$0”的消息框显示什么?它显示“C:\Program Files\DevApp\0.1.0.0\application\license”(引号属于输出)您提供的示例对我不起作用,因为该文件只允许设置一个特定的文件。但你对斜杠的解释给了我线索。从注册表项读取时,似乎会返回带引号的字符串。但是,通过使用,我成功地从字符串中删除了引号,并将该参数传递给CopyFile。现在对我有用了!我的例子在我尝试它的时候起作用了,不过这并不重要,我添加它只是为了说明变量可以与copyfile一起工作。
Section
InitPluginsDir
CreateDirectory "$PluginsDir\Src"
File "/oname=$PluginsDir\Src\test.txt" "${__FILE__}"
CreateDirectory "$PluginsDir\Dst"
StrCpy $0 "$PluginsDir\Src\test.txt"
CopyFiles "$0" "$PluginsDir\Dst"
ExecShell explore "$PluginsDir\Dst"
MessageBox MB_OK "Done?"
Quit
SectionEnd