0

我想用 ant 执行此操作(如果直接在 cmd 中过去,则该命令正在工作)

%windir%\system32\inetsrv\Appcmd set site /site.name:"Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:']

但它不起作用。似乎问题在于我没有逃避某些东西(我怀疑是 / + [ 符号)。我已经尝试过了,但它仍然不起作用:

C:\Windows\system32\inetsrv\Appcmd set site /site.name:"Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:'] 

这是我的构建脚本中的一个片段

<!-- Create the actual https binding for the Site -->
    <staf location="local"
        service="PROCESS"
        request="START COMMAND netsh http add sslcert ipport=0.0.0.0:443 certstorename=MY certhash=${local.machine.certhash} appid={${local.machine.keycontainer}} WAIT STDERRTOSTDOUT RETURNSTDOUT"
        throwBuildException="STAF ERROR" /> 

    <staf location="local"
        service="PROCESS"
        request="START  COMMAND %windir%\system32\inetsrv\Appcmd set site /site.name:&quot;Default Web Site&quot; /+bindings.[protocol=&apos;https&apos;,bindingInformation=&apos;*:443:&apos;] WAIT STDERRTOSTDOUT RETURNSTDOUT"
        throwBuildException="STAF ERROR" /> 

我从执行中得到的错误是:

 RC=0, Result=
 [staf] {
 [staf]   Return Code: 87
 [staf]   Key        : <None>
 [staf]   Files      : [
 [staf]     {
 [staf]       Return Code: 0
 [staf]       Data       : Failed to process input: The parameter 'Site' must begin with a / or - (HRESULT=80070057).
4

1 回答 1

0

正确转义的命令是:

<staf location="local"
                service="PROCESS"
                request="START COMMAND &quot;C:\\Windows\\system32\\inetsrv\\Appcmd set site /site.name:\&quot;Default Web Site\&quot; /+bindings.[protocol=&apos;https&apos;,bindingInformation=&apos;*:443:&apos;]&quot; WAIT STDERRTOSTDOUT RETURNSTDOUT"
                throwBuildException="STAF ERROR" />
于 2016-01-14T11:09:35.913 回答