簡體   English   中英

從 powershell 獲取 html 文件值

[英]Get html file value from powershell

我們有一個 html 文件,用於測試內部工具是否正確安裝。

html 文件輸出兩個值 Connected 或 Connection failed。

下面是我們通過瀏覽器打開 html 文件時的截圖。

在此處輸入圖像描述

我需要通過 PowerShell 終端將以上值設為 output。

我嘗試了 Invoke-Webrequest 但無法獲得所需的值。

Invoke-WebRequest C:\websocket.html | Select content

內容

{60, 33, 68, 79...}

Invoke-WebRequest C:\websocket.html | Select-Object -ExpandProperty rawcontent
Content-Length: 886
Content-Type: application/octet-stream

<!DOCTYPE html>
<html>
   <meta charset = "utf-8" />
   <title>WebSocket Test</title>

   <script language = "javascript" type = "text/javascript">
      var wsUri = "ws://localhost:9091/";
      var output;
    
      function init() {
         output = document.getElementById("output");
         testWebSocket();
      }
    
      function testWebSocket() {
         websocket = new WebSocket(wsUri);
            
         websocket.onopen = function(evt) {
            onOpen(evt)
         };

     websocket.onclose = function(evt){
        onClose(evt)
     };
      }

    function onClose(evt) {
        document.getElementById('output').innerHTML += 'CONNECTION FAILED';
    }
    
      function onOpen(evt) {
    document.getElementById('output').innerHTML += 'CONNECTED';

      }
    
      window.addEventListener("load", init, false);
   
   </script>

   <h2>WebSocket Test</h2>
   <div id = "output"></div>

</html>

有什么幫助嗎?

編輯:(Invoke-WebRequest C:\websocket.html)。內容 60、33、68、79、67、84、89、80、69、32、104、116、109、108、62、10、60、104 , 116, 109, 108, 62, 10, 32, 32, 32, 60, 109, 101, 116, 97, 32, 99, 104, 97, 114, 115, 101, 116, 32, 61, 32, 34 , 117, 116, 102, 45, 56, 34, 32, 47, 62, 10, 32, 32, 32, 60, 116, 105, 116, 108, 101, 62, 87, 101, 98, 83, 111 , 99, 107, 101, 116, 32, 84, 101, 115, 116, 60, 47, 116, 105, 116, 108, 101, 62, 10, 10, 32, 32, 32, 60, 115, 99 , 114, 105, 112, 116, 32, 108, 97, 110, 103, 117, 97, 103, 101, 32, 61, 32, 34, 106, 97, 118, 97, 115, 99, 114, 105 , 112, 116, 34, 32, 116, 121, 112, 101, 32, 61, 32, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114, 105 , 112, 116, 34, 62, 10, 32, 32, 32, 32, 32, 32, 118, 97, 114, 32, 119, 115, 85, 114, 105, 32, 61, 32, 34, 119 , 115, 58, 47, 47, 108, 111, 99, 97, 108, 104, 111, 115, 116, 58, 57, 48, 57, 49, 47, 34, 59, 10, 32, 32, 32 , 32, 32, 32, 118, 97, 114, 32, 111, 117, 116, 112, 117, 116, 59, 10, 9, 10, 3 2, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 105, 110, 105, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 117, 116, 112, 117, 116, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 34, 111, 117, 116, 112, 117, 116, 34, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 116, 101, 115, 116, 101, 98, 83, 111, 99, 107, 101, 116, 40, 41, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 9, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 116, 101, 115, 116, 87, 101, 98, 83, 111, 99, 107, 101, 116, 40, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 101, 98, 115, 111, 99, 107, 101, 116, 32, 61, 32, 110, 101, 119, 32, 87, 101, 98, 83, 111, 99, 107, 101, 116, 40, 119, 115, 85, 114, 105, 41, 59, 10, 9, 9, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 119, 101, 98, 115, 111, 99, 107, 101, 116, 46, 111, 110, 111, 112, 101, 110, 32, 61, 32, 102, 117, 110, 99, 116, 105 , 111, 110, 40, 101, 118, 116, 41, 32, 123, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 111, 110, 79 , 112, 101, 110, 40, 101, 118, 116, 41, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 125, 59, 10, 10, 9, 32, 119 , 101, 98, 115, 111, 99, 107, 101, 116, 46, 111, 110, 99, 108, 111, 115, 101, 32, 61, 32, 102, 117, 110, 99, 116, 105 , 111, 110, 40, 101, 118, 116, 41, 123, 10, 9, 9, 111, 110, 67, 108, 111, 115, 101, 40, 101, 118, 116, 41, 10, 9 , 32, 125, 59, 10, 32, 32, 32, 32, 32, 32, 125, 10, 10, 9, 102, 117, 110, 99, 116, 105, 111, 110, 32, 111, 110 , 67, 108, 111, 115, 101, 40, 101, 118, 116, 41, 32, 123, 10, 9, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103 , 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 111, 117, 116, 112, 117, 116, 39, 41, 46, 105 , 110, 110, 101, 114, 72, 84, 77, 76, 32, 43, 61, 32, 39, 67, 79, 78, 78, 69, 67, 84, 73, 79, 78, 32, 70 , 65, 73, 76, 69, 68, 39, 59, 10, 9, 125, 10, 9, 10, 32, 32, 32, 32, 32, 32, 102, 117, 110, 99, 116, 105 , 111, 110, 32, 111, 110, 79, 112, 101, 110, 40, 101, 118, 116, 41, 32, 123, 10, 9, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 66, 121, 73, 100, 40, 39, 111, 117, 116, 112, 117, 116, 39, 41, 46, 105, 110, 110, 101, 114, 72, 84, 77, 76, 32, 43, 61, 32, 39, 67, 79, 78, 78, 69, 67, 84, 69, 68, 39, 59, 10, 10, 32, 32, 32, 32, 32, 32, 125, 10, 9, 10, 32, 32, 32, 32, 32, 32, 119, 105, 110, 100, 111, 119, 46, 97, 100, 100, 69, 118, 101, 110, 116, 76, 105, 115, 116, 101, 110, 101, 114, 40, 34, 108, 111, 97, 100, 34, 44, 32, 105, 110, 105, 116, 44, 32, 102, 97, 108, 115, 101, 41, 59, 10, 32, 32, 32, 10, 32, 32, 32, 60, 47, 115, 99, 114, 105, 112, 116, 62, 10, 10, 32, 32, 32, 60, 104, 50, 62, 87, 101, 98, 83, 111, 99, 107, 101, 116, 32, 84, 101, 115, 116, 60, 47, 104, 50, 62, 10, 32, 32, 32, 60, 100, 105, 118, 32, 105, 100, 32, 61, 32, 34, 111, 117, 116, 112, 117, 116, 34, 62, 60, 47, 100, 105, 118, 62, 10, 10, 60, 47, 104, 116, 109, 108, 62, 10

嘗試這個

Invoke-RestMethod -Uri "C:\websocket.html"

Invoke-WebRequest實際上並不處理本地 html 個文件 即使它看起來是成功的,它只是...打開文件。 這在 powershell(下面的 v7.1)的較新版本中更加清楚:

Invoke-WebRequest C:\websocket.html

[Error] Invoke-WebRequest: Only 'http' and 'https' schemes are allowed. (Parameter 'requestUri')

另一種選擇是使用 inte.net explorer COM 對象在 IE 中基本打開文件,然后抓取頁面:

$url = 'C:\websocket.html'
$ie = New-Object -com internetexplorer.application  -Property @{visible = $false}
$ie.navigate($url)

# Optionally wait for connection
while ($ie.Busy -eq $true){sleep 1}
$output = $ie.Document.documentElement.innerText
# Output the last line of the returned page
$output -split [environment]::NewLine | Select -Last 1
$ie.Quit()

# Outputs:
CONNECTION FAILED

如果 output 看起來不正常,設置visible = $true ,看看 IE 是否在抱怨什么(對我來說,我必須允許 ActiveX)。

$value= Invoke-RestMethod -Uri "C:\websocket.html" 
$op = [char[]]$value.Content
$op -join ''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM