[英]How to execute a PowerShell command that includes double quotes
我正在嘗試執行PowerShell命令(從JavaFx)以獲得設備驅動程序版本。
我的問題是PS cmdlet中包含一些雙引號。
運行命令
Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*selectedDeviceName*"}
Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*selectedDeviceName*"}
,
直接在PS中可以得到期望的結果。 但是(經過無數次嘗試,錯誤和谷歌搜索之后),我對如何處理cmdlet中包含的雙引號感到困惑。
這是嵌入PS cmdlet的JavaFx方法:
public void getDriverVersionViaPowerShell() {
ProcessBuilder psProcessBuilder = new ProcessBuilder("/Windows/System32/WindowsPowerShell/v1.0/powershell.exe",
"Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion| where {$_.devicename -like "*selectedDeviceName*"}");
//some code...
}
"*selectedDeviceName*"
部分是我的問題。 selectedDeviceName
是一個字符串變量,其中包含我要獲取其驅動程序版本的設備的名稱。
我很高興獲得一些幫助來解決此問題。
預先感謝您的時間和幫助!
喬
"Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion| where {$_.devicename -like \"" + selectedDeviceName +"\"}"
您可以使用\\
作為轉義符,以在字符串中包含雙引號。 輸出為:
Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion| where {$_.devicename -like "name of the driver"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.