windows - 用于浏览器的 Powershell 更改
问题描述
今天我写了一些小代码来改变我的默认浏览器。
这是我的代码:
function Set-DefaultBrowser
{
$browser = (Get-Item -Path "HKLM:\SOFTWARE\RegisteredApplications").Property | Where-Object -FilterScript{ $ -like "Firefox*"} # Read registered Browsers and Filter Firefox
Invoke-Expression "$($exe_path) HKLM $($browser)"
}
但我收到了这个错误:
$ : Die Benennung "$" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der
Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In N:\Privat\Dokumente\philips_bs_script.ps1:19 Zeichen:112
+ ... steredApplications").Property | Where-Object -FilterScript{ $ -like " ...
+ ~
+ CategoryInfo : ObjectNotFound: ($:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
你有什么解决办法吗?
感谢 VallingSki
解决方案
该警告暗示“$”不是 Powershell 已知的 cmdlet 的名称。在您的-FilterScript
脚本块中,当您可能打算输入“$_”时,您输入了“$”。
推荐阅读
- graphql - 不能对 Type-GraphQL 字段类型使用类型“对象”
- python - 有一个关于 pymongo(cursor) 的问题
- angular - 在 ag-grid 上使用单元格列宽导出到 excel
- go - 在golang谷歌云后端功能中获取参数
- react-native - 使用 React Navigation 版本 5 时如何传递自定义道具?
- node.js - 节点;用户通过远程文件服务器下载
- mysql - Azure VM 扩展预配完成时间过长
- apache-camel - Apache camel-K:ActiveMQ 发射器实例化问题
- c++ - OSX蓝牙openRFCOMMChannelAsync声称已连接但未建立连接并且从未调用委托
- postgresql - PostgreSQL 恢复后的串行冲突