1

vbs で cmd 引数の実行結果から特定を表示するコマンドが必要です。私はコードを

    <script language="VBScript" type="text/vbscript">
    set objShell = CreateObject("WScript.Shell")
    strOut=""
    sub start
    cmdarg="%comspec% /c netsh wlan show hosted " 
    set objExCmd = objShell.Exec(cmdarg)
    strOut=objExCmd.StdOut.ReadAll
    Set regEx = New RegExp
    regEx.Pattern = "[\f\n\r\v]+"
    regEx.Global = True
    regEx.Multiline = True
    strOut = regEx.Replace(strOut, "<br>")
    TraceOut.innerHTML= strOut
    end sub
    </script>

これは、実行後のすべての出力を以下のようにリストします。

ホストされたネットワーク設定

Mode                   : Allowed
SSID name              : "MyWiFi"
Max number of clients  : 10
Authentication         : WPA2-Personal
Cipher                 : CCMP

ホストされたネットワークのステータス

Status                 : Not started

SSID 名のみを表示する必要があります。つまり、「MyWiFi」 ssid 名を変更するたびに変更されます。したがって、常に「MyWiFi」とは限りません

これは完全な HTA プログラムです

    <head><title>Hosted Network</title>
    <HTA:APPLICATION ID="oHTA";
      APPLICATIONNAME="Hosted Network";
      BORDER="thin";
      BORDERSTYLE="normal";
      SINGLEINSTANCE="no";
    >
    </head><body bgcolor="#E8E8E8" >
    <script language="VBScript" type="text/vbscript">
    sub subfn
    set objShell = CreateObject("WScript.Shell")
    cmdarg="%comspec% /c netsh wlan show hosted"
    set strOut = objShell.Exec(cmdarg)
    Dim re : Set re = New RegExp
    re.Multiline = True
    re.Pattern   = "^SSID\s+name\s+:\s+""([^""]+)"""
    strOut = "SSID: >" & re.Execute(strOut)(0).Submatches(0) & "<"
    TraceOut.innerHTML= strOut
    end sub
    </script>
    <input type="Button" name="B1" value="Find"  onclick="subfn">
    <div id=TraceOut></div></body> 
    </html>
4

1 に答える 1

1

キャプチャ/グループ/サブマッチで RegExp を使用して、netsh 出力から目的の情報を切り取ります。

  Dim strOut : strOut = Join(Array( _
      "Mode                   : Allowed" _
    , "SSID name              : ""MyWiFi""" _
    , "Max number of clients  : 10" _
  ), vbCrLf)
  WScript.Echo strOut
  Dim re : Set re = New RegExp
  re.Multiline = True
  re.Pattern   = "^SSID\s+name\s+:\s+""([^""]+)"""
  WScript.Echo "SSID: >" & re.Execute(strOut)(0).Submatches(0) & "<"

出力:

Mode                   : Allowed
SSID name              : "MyWiFi"
Max number of clients  : 10
SSID: >MyWiFi<

(しかし、「ソート」が問題の一部であることがわかりません)

于 2013-08-31T08:13:29.723 に答える