如何从“AppCmd.exe list site”命令中获取站点名称?

Tom*_*son 5 iis iis-7.5 azure appcmd

如果我在我的服务器上运行以下命令:

%windir%\system32\inetsrv\AppCmd.exe list site
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

SITE "MyCompany.MyProject.WebRole_IN_0_Web" (id:1273337555,bindings:https/555.555.555.555:443:,state:Started)
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到网站名称:

MyCompany.MyProject.WebRole_IN_0_Web
Run Code Online (Sandbox Code Playgroud)

某种讨厌的字符串解析是我唯一的选择吗?服务器是一个 Windows Azure 实例。

Tom*_*son 13

知道了:

appcmd list site /text:name
Run Code Online (Sandbox Code Playgroud)

给你这个:

MyCompany.MyProject.WebRole_IN_0_Web
Run Code Online (Sandbox Code Playgroud)

帮助描述了这是如何工作的:

/text<:value>    Generate output in text format (default).
                 /text:* shows all object properties in detail view.
                 /text:<attribute> shows the value of the specified
                 attribute for each object.
Run Code Online (Sandbox Code Playgroud)

name通过调用确定这是正确的属性:

appcmd list site /xml
Run Code Online (Sandbox Code Playgroud)

其中以 XML 格式返回(包括属性名称):

<?xml version="1.0" encoding="UTF-8"?>
<appcmd>
    <SITE SITE.NAME="MyCompany.MyProject.WebRole_IN_0_Web" SITE.ID="1273337555" bindi
gs="https/555.555.555.555:443:" state="Started" />
</appcmd>
Run Code Online (Sandbox Code Playgroud)