8

PowerShell 小技巧 - 開啟瀏覽器檢視本機 HTML 檔及瀏覽網站

 2 years ago
source link: https://blog.darkthread.net/blog/open-url-or-html-in-ps/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
開啟瀏覽器檢視本機 HTML 檔及瀏覽網站-黑暗執行緒

這是我開發 PowerShell 小工具的常用技巧 - 將複雜的執行結果以 HTML 形式呈現,遠比用 Write-Output 輸出單調文字容易理解閱讀。例如:之前介紹的資料夾權限清單產生工具,用表格呈現結構化內容絕對比純文字強十倍,甚至還可寫幾行 JavaScript 動態展開收合支援互動操作,讓你的工具馬上升到另一個檔次。

除了將結果轉成 HTML 檔,我還有另一種用網頁顯示結果的方式:呼叫一串 WebAPI 更新資料後,將使用者引導到該網站的指定網頁介面檢視執行結果。

以上兩種應用,都需要用到一個小技巧:從 PowerShell 啟動瀏覽器開啟指定本機 HTML 檔或連上指定 URL。

最直覺的做法是找到 Chrome、Edge、Firefox 或 IE 的執行檔,傳入網址或檔案路徑當參數啟動,但要這樣做得偵測使用者裝了哪些瀏覽器,找到瀏覽器執行檔所在路徑,考量客戶端環境千奇百怪,想做到絕不出錯程式免不了複雜化。其實,Windows 一定會設定預設瀏覽器,將網址交給 Windows Shell,請 Windows 自己看著辦才是最不沾手的省力做法。

在 PowerShell 呼叫 Windows 以預設瀏覽器(管它是 Chrome 還是 Edge)開啟指定網頁的方法蠻簡單的,本機 HTML 檔跟遠端 URL 略有不同,講了大半天,重點只有範例的最後兩行:

$filePath = ".\demo.html"
$url = "https://blog.darkthread.net"

'<html><body>Hello, World!</body></html>' | Out-File $filePath

# Invoke-Expression 可用來執行外部程式
# 這個技巧是讓 Windows 用該檔案型別的預設應用程式開啟指定路徑的檔案
Invoke-Expression $filePath

# Start-Process 以預設瀏覽器連上該網址
Start-Process $url

同場加映,.NET Core 起 Process.Start(url) 這招會失效,連帶會影響 PowerShell 6+,這裡有一篇跨平台(Windows、Linux、MacOS)的做法 - Process.Start for URLs on .NET Core

and has 0 comments

Comments

Be the first to post a comment

Post a comment

Comment
Name Captcha 47 - 46 =

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK