簡體   English   中英

在NSIS中復制文件

[英]Copy Files in NSIS

我使用以下命令來復制文件。

設置輸出路徑后......

File "Documents\*"

這個動作完美無瑕。 在...之前處理文檔目錄中的文件沒有問題。

如果目錄中存在現有文件(具有不同名稱)的副本,則無論名稱如何,都會復制文件的第一個實例。

如何制作它以便復制所有文件,無論它們是否是其他文件的副本?

更正/更好的解釋(也許)

我為這種困惑道歉。 請允許我嘗試重述這個問題。 使用FILE命令提取的文件是此處的問題。 這些文件由原始文件和相同文件的副本組成(僅使用不同的名稱)。

示例:MyDocument.txt和copyOfMyDocument.txt等等。

應用“文件”命令時,為了將文件解壓縮到當前輸出路徑,僅提取文件的第一個實例(復制或原始...但不是兩者)。 再次,我很抱歉這令人困惑,但這是我第一次與NSIS合作。 我需要提取所有文件。

最簡單的方法是將它放在您創建的不同目錄中。 然后,如果你需要擔心重命名(因為評論員已經注意到你的問題沒有多大意義),你可以逐個文件地攻擊它。

# Extract the files to a directory which can't exist beforehand
CreateDirectory $PLUGINSDIR\extracting
SetOutPath $PLUGINSDIR\extracting
File Documents\*

# Now go through file by file
FindFirst $0 $1 $OUTDIR\*
${While} $1 != ""
    ${If} ${FileExists} $DOCUMENTS\$1
        # This still isn't infallible, of course.
        Rename $DOCUMENTS\$1 $DOCUMENTS\$1.local-backup
    ${EndIf}
    Rename $OUTDIR\$1 $DOCUMENTS\$1
    FindNext $0 $1
${Loop}
FindClose $0
SetOutPath $INSTDIR # Or somewhere else
RMDir $PLUGINSDIR\extracting

(注意那是使用LogicLib。)

這不會成為一種非常巧妙的方式,如果你能避免它,那就行了。

我以為我明白了你的意思,直到我開始閱讀回復; 我將使用我的初步解釋:給定一個名為“Documents”的目錄,其中包含一堆文件(它們被調用的內容,它們的內容無關緊要),您需要一個安裝程序將文件復制到某些文件中輸出目錄。 我在這里為這個場景創建了一個測試安裝程序,它對我有用。 我在你所追求的內容中缺少什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM