2012-06-13 57 views

答えて

22

シンタックスはディレクトリとファイルの両方で同じですが、終了時に0。 Fileコマンドは、指定された引数がディレクトリの場合、ディレクトリをコピーします。たとえば、次のようにすることができます。

SetOutPath "outputPath" 
File "myDirectory\" #note back slash at the end 

しかし、これは最上位ディレクトリのみをコピーします。再帰的にそれを行うには、/rスイッチ

SetOutPath "outputPath" 
File /nonfatal /a /r "myDirectory\" #note back slash at the end 

コピーmyDirectory(ただしmyDirectoryフォルダ自体)の内容を持っています。 /nonfatalは、特定のディレクトリがない場合はエラーなしで無視します。 /aはファイル属性もコピーします。 /xスイッチを使用してファイルを除外します。

そうでない場合

SetOutPath "outputPath\myDirectory" 
File /nonfatal /a /r "myDirectory\" #note back slash at the end 

コピーoutputPathからmyDirectoryフォルダを含めmyDirectoryのすべての内容。

+1

ありがとう!最後の例は、私が SetOutPath $ INSTDIR \ mydirectoryなど を使用する必要があり、フォルダを作成するには...しかし働くよう、次に ファイル/ A/R「mydirectoryなど\」 – werner

+0

@nawfal、のためにどうもありがとうございますされません最後に「\」を強調します。それは私を運転していたCRAZY !!私はNSISのドキュメントでそれを参照するものは何も見ませんでした。 – Damian

+0

重要なことは、コンパイル段階でインストーラの実行可能ファイル内にディレクトリをパックするのと同様の副作用があるということです。 – Andry

4

私はそれを行う方法を見つけました、問題を申し訳ありません。

File指示がインストーラからファイルや、既にエンドユーザーのシステム上に存在するCopyFilesコピーファイルおよび/またはディレクトリを抽出し

CreateDirectory $Installdir\extracting 

SetOutPath $Installdir\extracting 

File Directory\* 
+2

'SetOutPath'は既に渡されたディレクトリとサブディレクトリを作成するので、CreateDirectoryを最初に呼び出す必要はありません。 – Claudix

3

予め存在することができないディレクトリにファイルを解凍(あなたのインストーラがあるDVDからファイルをコピーする必要がある場合は$ EXEDIRを使うことができます...)

関連する問題