nsExec以获取IIS FastCGI设置

时间:2013-12-11 05:58:44

标签: nsis

cmd中的以下命令行(admin)提供结果即。 C:\ PHP \的php.exe:

%windir%\system32\inetsrv\appcmd.exe list config -section:system.webServer/fastCgi "/text:[arguments=''].fullPath"

现在我想使用nsExec :: ExecToStack作为

来实现它
nsExec::ExecToStack "%windir%\system32\inetsrv\appcmd.exe list config -section:system.webServer/fastCgi $\"/text:[arguments=''].fullPath$\""
Pop $0
Pop $1
MessageBox MB_OK $0
MessageBox MB_OK $1

导致''错误''。我试图找出背后的原因并谷歌但它没有成功获得它的复制。 在这里,我正在寻找它背后的可能原因和可能的解决方案。请把它当作天才并抱歉任何错过,使其成为具体问题。

2 个答案:

答案 0 :(得分:0)

试试这个

nsExec::ExecToStack ` %windir%\system32\inetsrv\appcmd.exe list config -section:system.webServer/fastCgi $\"/text:[arguments=''].fullPath$\" `

答案 1 :(得分:0)

你有引用问题。

  • 要执行的命令及其路径必须在ExecToStack参数中双引号,如文档中所示:

    nsExec::ExecToStack [OPTIONS] '"PATH" param1 param2 paramN'
    
  • 我可以看到你试图逃避最后一个参数的双引号。 NSIS支持3种不同类型的字符串引用:双引号",单引号'和后引号`,两者的处理方式完全相同(不像在Perl中单引号阻止字符串插值)

因此,您应该尝试使用另一个引用来调用您的命令:

nsExec::ExecToStack `"%windir%\system32\inetsrv\appcmd.exe" list config -section:system.webServer/fastCgi "/text:[arguments=''].fullPath"`