我正在编写一个测试用例脚本,该脚本将安装Citrix Receiver,检查是否已创建存储,然后将其卸载。
我卸载Receiver的方式是运行以下命令:
Start-Process "C:\ProgramData\Citrix\Citrix Receiver 4.12\TrolleyExpress.exe" -argumentlist "/silent /uninstall /cleanup" -Wait -PassThru
从注册表项值获得TrolleyExpress.exe
和/uninstall /cleanup
参数的路径。
我已经获得了值的内容并将其包含在一个变量中:
$uninstallString = (Get-ItemProperty -path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\CitrixOnlinePluginPackWeb -name UninstallString).UninstallString
$uninstallString
变为C:\ProgramData\Citrix\Citrix Receiver 4.12\TrolleyExpress.exe /uninstall /cleanup
我的目标是直接从regedit获取到TrolleyExpress.exe
的路径,因为它是一个可以在多台计算机上运行的测试用例。如果Receiver的安装位置不同于C:
或其他路径。
这是我进入PowerShell脚本的第一个月,我对正则表达式非常陌生。
我们非常感谢您对如何解决此问题的任何帮助\建议!
答案 0 :(得分:2)
假设注册表中的路径遵循您给出的示例(可能的驱动器号除外),那么获取路径的一种简单方法是:
$exePath = $uninstallString.Split('/')[0]