シェルの動作を有効にするには、実行する必要がありますcmd.exe /C yourcommand
(または、Win9x をサポートしていない場合は、%ComSpec% を展開しますExpandEnvStrings
が、cmd.exe をハードコーディングしても問題ありません)。
または、これを行うExecCmd プラグインを試すこともできます (ただし、オプションが少ないため、出力をファイルにリダイレクトする必要があります)。
nsExec::ExecToStack
cmdプレフィックスでも機能するはずです...
編集:
これが実際の例です(デフォルトのインストールの一部であるため、nsExecを使用しました)
!include LogicLib.nsh
section
ExpandEnvStrings $0 %COMSPEC%
StrCpy $1 445 ;Port number
nsExec::ExecToStack '"$0" /C netstat -an|find /C ":$1"'
Pop $0
${If} $0 = 0
Pop $0
MessageBox mb_ok "Port count=$0"
${Else}
; Port not open...
${EndIf}
sectionend