简体   繁体   English

如何执行包含双引号的PowerShell命令

[英]How to execute a PowerShell command that includes double quotes

I'm trying to execute a PowerShell command (from JavaFx) to obtain a device driver version. 我正在尝试执行PowerShell命令(从JavaFx)以获得设备驱动程序版本。

My problem is some double quotes included in the PS cmdlet. 我的问题是PS cmdlet中包含一些双引号。

Running the command 运行命令

Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*selectedDeviceName*"} Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*selectedDeviceName*"} , Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "*selectedDeviceName*"}

directly in PS gives me the result I'm expecting to get. 直接在PS中可以得到期望的结果。 But (after numerous trial & errors and googling) I'm confused about how to handle the double quotes included in the cmdlet. 但是(经过无数次尝试,错误和谷歌搜索之后),我对如何处理cmdlet中包含的双引号感到困惑。

Here is the JavaFx method in which the PS cmdlet is embedded: 这是嵌入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...
}

The "*selectedDeviceName*" part is my problem. "*selectedDeviceName*"部分是我的问题。 selectedDeviceName is a string variable that contains the name of the device whose driver version I'm trying to get. selectedDeviceName是一个字符串变量,其中包含我要获取其驱动程序版本的设备的名称。

I would be glad to get some help to resolve this issue. 我很高兴获得一些帮助来解决此问题。

Thank you in advance for your time and help !!! 预先感谢您的时间和帮助!

AvJoe

"Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion| where {$_.devicename -like \"" + selectedDeviceName +"\"}"

You can use \\ as escape character for including double quotes in string. 您可以使用\\作为转义符,以在字符串中包含双引号。 Output would be: 输出为:

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