2013-07-06 146 views
0

我有一個字符串變量名$1這是一個路徑(目錄)。我需要在安裝過程中將我的輸出目錄中的文件複製到$1。所以我這樣做:如何獲取目錄中特定類型文件的名稱?

SetOutPath $1 
File "Database\*.xxx" 

也就是說從Database文件夾$1.xxx類型的所有文件。但是我只有一個這種類型的文件。如何在另一個變量中獲取該文件的名稱?

例如,我Database文件夾看起來像:

Database -> 224eadf234.xxx 

我不想在NSIS腳本,因爲它可以在其他未來的東西硬編碼的基本名稱224eadf234.xxx,但延長是怎麼回事永遠是.xxx。這就是爲什麼我去*.xxx的方法。但我確實需要在運行時獲取文件的名稱。由於目錄Database中只有這樣的文件,我認爲它會很容易。

謝謝。

回答

1
!appendfile "$%temp%\tmp1234.xxx" "This is a test" ; Create dummy file 

; Find file at compile-time (on Windows) 
!tempfile NSH 
!system 'for %A IN ("$%temp%\*.xxx") DO echo !define THEFILE "%~A" > "${NSH}"' 
!include "${NSH}" 
!delfile "${NSH}" 
!undef NSH 
!error "FILE=${THEFILE}" 

Section 
!include LogicLib.nsh 
StrCpy $1 $instdir\test 
SetOutPath $1 
File "$%temp%\*.xxx" 

; Find file at run-time 
FindFirst $2 $3 "$1\*.xxx" 
${If} $3 != "" 
    DetailPrint "First *.xxx file = $3" 
${EndIf} 
FindClose $2 
SectionEnd 
相關問題