nsExec :: ExectoStack未提供预期结果

时间:2016-02-16 09:34:43

标签: windows nsis

我尝试使用ExectoStack执行以下命令

echo "hello.world.url=Hello:World" | C:\cygwin64\bin\gawk.exe -F= "{print $1}"

cmd上的输出符合预期

"hello.world.url

当我使用nsis执行此操作时:

nsExec::ExectoStack 'cmd /c echo "hello.world.url=Hello:World" | C:\cygwin64\bin\gawk.exe -F= "{print $1}"'
pop $0
pop $1

我得到输出为

return code = 0
output = "hello.world.url=Hello:World"

我的猜测是$ 1包含第一个命令(echo)的输出,并且某种程度上没有获取连续命令(gawk)的输出。如果我错过任何一步,请告诉我。

由于

1 个答案:

答案 0 :(得分:1)

似乎对我有用:

Section 
nsExec::ExectoStack 'cmd /c dir "%windir%\system32" | findstr /I "kernel32"'
pop $0
pop $1
DetailPrint "Return=$0"
DetailPrint "Output=|$1|"
SectionEnd

但你可能会忘记的是$ 1是一个NSIS变量!尝试将其转义为$$1