這個問題在這里已經有了答案: Powershell SetEnvironmentVariable 未按預期設定變數 1 個回答 PowerShell 如何顯示呼叫外部終端應用程式 (nssm.exe) 產生的輸出字串 (1 個回答) 3 小時前關閉。
我希望我的 powershell 腳本檢測安裝了哪個 WSL 發行版
PS> wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu (Default)
PS> wsl -l | where {$_ -match "^Ubuntu"}
# Doesn't print anything
我希望它列印:
Ubuntu (Default)
再做幾個實驗:
PS> $x = wsl -l
PS> $x.GetType()
True True Object[] System.Array
PS> $x[0].GetType()
True True String System.Object
PS> $x[1].GetType()
True True String System.Object
uj5u.com熱心網友回復:
Windows PowerShell 似乎將 UTF 編碼的輸出解碼wsl -l為 ASCII,因此該字串包含一堆 NUL 位元組。
改成:
wsl -l |Where {$_.Replace("`0","") -match '^Ubuntu'}
你應該得到預期的結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/345258.html
標籤:电源外壳
