2017-09-08 60 views
0

我想從一個文件夾中複製一個文件,該文件在開始時不存在,但將在複製之前創建。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 

問題是編譯器創建錯誤,當他試圖編譯並且找不到文件時。但是編譯之前創建的文件和編譯程序後刪除的文件就可以工作。

+0

您的示例代碼對我來說沒有多少意義。你正在創建一個'test'文件夾,你想從中提取'test2 \ test.txt'文件(記住,這是你的*計算機上你所在的位置)。然後你改變'$ OUTDIR'做什麼 - 再次提取同一個文件?您可以再次使用相同的File命令(或從先前的位置複製它)。 NSIS編譯器足夠聰明,可以包含兩次相同的文件。 – idleberg

+0

問題解決了!我現在使用CopyFiles而不是File。我使用這個程序進行測試。在我真正的程序中,我安裝了一個軟件,並且必須將安裝時創建的文件夾複製到更高級別的目錄中! –

回答

0

File命令在您的安裝程序中包含一個文件,因此它必須在編譯時存在。您可以在運行時複製文件CopyFiles

+0

感謝它的工作! –

+0

然後請按複選標記接受答案 – idleberg

相關問題