我想從一個文件夾中複製一個文件,該文件在開始時不存在,但將在複製之前創建。NSIS複製文件不存在,但將被創建
Name "Test Installer"
OutFile "testinstaller.exe"
InstallDir C:\dev\NSIS\Scripts\Testinstaller
Section "copyTest"
SetOutPath $INSTDIR
CreateDirectory $INSTDIR\test
SetOutPath $INSTDIR\test
File test2\test.txt
SetOutPath $INSTDIR
File /nonfatal test\test.txt
SectionEnd
問題是編譯器創建錯誤,當他試圖編譯並且找不到文件時。但是編譯之前創建的文件和編譯程序後刪除的文件就可以工作。
您的示例代碼對我來說沒有多少意義。你正在創建一個'test'文件夾,你想從中提取'test2 \ test.txt'文件(記住,這是你的*計算機上你所在的位置)。然後你改變'$ OUTDIR'做什麼 - 再次提取同一個文件?您可以再次使用相同的File命令(或從先前的位置複製它)。 NSIS編譯器足夠聰明,可以包含兩次相同的文件。 – idleberg
問題解決了!我現在使用CopyFiles而不是File。我使用這個程序進行測試。在我真正的程序中,我安裝了一個軟件,並且必須將安裝時創建的文件夾複製到更高級別的目錄中! –