簡體   English   中英

如何執行包含雙引號的PowerShell命令

[英]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.

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