java - 如何执行包含双引号的 PowerShell 命令
问题描述
我正在尝试执行 PowerShell 命令(来自 JavaFx)以获取设备驱动程序版本。
我的问题是 PS cmdlet 中包含一些双引号。
运行命令
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 +"\"}"
您可以使用\
转义字符在字符串中包含双引号。输出将是:
获取 WmiObject Win32_PnPSignedDriver| 选择设备名、驱动程序版本| 其中 {$_.devicename -如“驱动程序名称”}
推荐阅读
- android - react-native-camera 未在 Android 上触发
- sql - 如何将此迭代解决方案转换为基于集合的解决方案
- ssl - 如何在 certreq 命令行工具使用的 RequestPolicy.inf 文件中添加“描述”
- amazon-dynamodb - Dynamo DB - 批量获取项目分页
- kong - 当 kong 节点收到请求时,kong 怎么知道要执行哪个插件?
- swift - 如何在最新的 iOS 14 中仅在 swiftui 中舍入滚动视图的顶角
- exception - Kotlin calbbackFlow 捕获运算符未捕获异常
- python - AttributeError:模块“selenium.webdriver”没有属性“find_element_by_xpath”
- html - gif 按钮不会居中到顶部
- python - Python 开槽/排序