我的目標是能夠決議以下 Windows 命令列命令的輸出(以及在 powershell 中):
java -XshowSettings:properties -version
我正在嘗試專門獲取“java.home = Path\to\java\home”這一行
到目前為止,我已經嘗試過類似的命令
java -XshowSettings:properties -version | findstr /C:java.home
或重定向到檔案并從那里決議但檔案為空
java -XshowSettings:properties -version > tmp.txt
我還嘗試了以下 powershell 命令
java -XshowSettings:properties -version | Select-String -Pattern 'java.home' -SimpleMatch
java -XshowSettings:properties -version | Out-String -Stream | Select-String -Pattern 'home' -SimpleMatch
我什至嘗試為命令創建一個函式并將變數設定為命令輸出,然后我將嘗試決議該變數,但該變數也是空的
function javahome {
java -XshowSettings:properties -version
}
$Jhome = javahome
$Jhome 是空的...
我認為 java 命令的輸出不是通過命令列捕獲的相同管道輸出,即使它是在螢屏上輸出的。我不確定如何找到這個單獨的輸出并開始決議它,但這就是我需要做的。我需要能夠決議出 java.home 路徑,因為另一個行程需要它。我也需要其他行,所以我不打算拉 %JAVA_HOME% 環境變數。
uj5u.com熱心網友回復:
此命令寫入標準錯誤,而不是標準輸出。
對于命令列,嘗試
java -XshowSettings:properties -version 2>&1 | findstr /C:java.home
將2>&1標準錯誤到標準輸出重定向。
或者java -XshowSettings:properties -version 2> tmp.txt
將標準錯誤重定向到檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/381803.html
上一篇:Powershell時間選擇器
