2016-05-31 2 views
-1

IfFileExistsコマンドの結果は、最初の行だけでなく3行を実行しますか?IfFileExistsコマンドは3つのコマンドラインを実行します

以下のコードでは、IfFileExistsの結果はTemWSConfigであり、NaoTemWSConfigコマンドの3行を実行する必要があります。

TemWSConfig後に現在のライン2と3を、常にNSISは、このように周りスキップしない

IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig 
    TemWSConfig:   
    File "..\IntegradorWS\bin\x86\Release\AppInstalado.config" 
    Rename "$INSTDIR\IntegradorWS.exe.Config" "$INSTDIR\Antigo_IntegradorWS.exe.Config" 
    Rename "$INSTDIR\AppInstalado.config" "$INSTDIR\IntegradorWS.exe.Config" 
    NaoTemWSConfig: 
    File "..\IntegradorWS\bin\x86\Release\IntegradorWS.exe.Config" 
+0

あなたが求めているものはわかりません。続きを読むと、それは矛盾しているようです。最初に、 'TemWSConfig'ラベルが実行された後の最初の行だけを要求していれば、あなたの下の2行は2行目と3行目だと主張します。 – idleberg

+0

とにかく、確認できる標準的なことがいくつかあります。あなたは '$ INSTDIR'(' RequestExecutionLevel '(https://github.com/NSIS-Dev/Documentation/blob/master/Reference/RequestExecutionLevel.md)参照)に書き込むための十分な権利を持っていますか? 'SetOutPathあなたが投稿した行の前に? – idleberg

答えて

1

、あなたが問題の指示を切り替えることであることを確認することができます実行します。

Section 
; Fake the IntegradorWS.exe.Config file for this example: 
StrCpy $INSTDIR $temp 
File "/oname=$INSTDIR\IntegradorWS.exe.Config" "${__FILE__}" 

IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig 
    TemWSConfig:   
    DetailPrint "TemWSConfig:1" 
    DetailPrint "TemWSConfig:2" 
    DetailPrint "TemWSConfig:3" 
    NaoTemWSConfig: 
    DetailPrint "NaoTemWSConfig:1" 

; Clean up 
Delete "$temp\IntegradorWS.exe.Config" 
SectionEnd 

この手段問題はFile命令で発生している必要があります。 SetOutPathを呼び出して、どこから抽出するのかを確認してください。 SetOverwriteなどを変更した場合、ファイルの抽出はスキップできます。

関連する問題