[英]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.