我有一个自解压的 WinRar 存档,用于在完成后运行一个 powershell 脚本。该脚本将启动,但特定命令不会给出预期结果。
特别是,我有以下命令来查找已安装游戏的安装路径(Risk of Rain 2)。
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | % { Get-ItemProperty $_.PsPath } | Where-Object {$_.DisplayName -like 'Risk of Rain 2'} | Select InstallLocation -ExpandProperty InstallLocation
单独运行脚本时,我得到了预期的安装路径。
F:\SteamLibrary\steamapps\common\Risk of Rain 2
当脚本启动时(在提取之前或之后),命令似乎运行,但没有输出。
在测试中,我删除了除以下内容之外的所有内容:
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | % { Get-ItemProperty $_.PsPath }
这仍然有效,输出已安装应用程序的列表。当我将管道添加到“Where-Object”部分时,它开始失败。
我唯一的猜测是 WinRar 启动脚本时设置了一些其他参数。
我尝试让 Winrar 启动一个 .bat,然后运行 .ps1 文件,但结果相同。以管理员身份运行存档也是如此。
我的 powershell 脚本有什么奇怪的地方,还是我只是错过了 Winrar 处理事情的方式?
谢谢!