我需要更改 Windows 7 注册表中的几个键值,以便向启动 VLC 的命令添加参数。
幸运的是,所有键都是以 开头的键的子键VLC.
:
Open
必须编辑和 的命令PlayWithVLC
。我正在考虑:
- 将密钥导出到 .reg 文件中,
- 在外部编辑值以添加
--no-playlist-enqueue
到行中 - 重新导入注册表中的.reg 文件。
我的 PowerShell 技能有限,我假设代码应该是这样的:
Get-ChildItem "Registry::HKCR" -Recurse -Force
| where { $_.Name -match 'vlc.'}`
| ForEach-Object {
try {
<create .reg entry>
}
catch { }
}
但我目前陷入了困境。您能给我一些建议,告诉我下一步该怎么做吗?
答案1
好的,如果您的 PS 技能有限,您想自动处理注册表。
呃……你确定吗?8-}
话虽这么说。
这里显示的内容很好,只是您没有显示要设置的值,也没有显示设置注册表项的命令。
您可以使用这些 cmdlet 来处理注册表。
Get-Command -CommandType Cmdlet -Name '*item*'
CommandType Name ModuleName
----------- ---- ----------
Cmdlet Clear-Item Microsoft.PowerShell.Management
Cmdlet Clear-ItemProperty Microsoft.PowerShell.Management
Cmdlet Copy-Item Microsoft.PowerShell.Management
Cmdlet Copy-ItemProperty Microsoft.PowerShell.Management
Cmdlet Get-ChildItem Microsoft.PowerShell.Management
Cmdlet Get-Item Microsoft.PowerShell.Management
Cmdlet Get-ItemProperty Microsoft.PowerShell.Management
Cmdlet Move-Item Microsoft.PowerShell.Management
Cmdlet Move-ItemProperty Microsoft.PowerShell.Management
Cmdlet New-Item Microsoft.PowerShell.Management
Cmdlet Remove-Item Microsoft.PowerShell.Management
Cmdlet Remove-ItemProperty Microsoft.PowerShell.Management
Cmdlet Set-Item Microsoft.PowerShell.Management
Cmdlet Set-ItemProperty Microsoft.PowerShell.Management
使用之前请务必查看帮助文件及其示例。
PSRemoteRegistry 1.0.0.0
该模块包含在本地或远程计算机上创建、修改或删除注册表子项和值的功能。
https://www.powershellgallery.com/packages/PSRemoteRegistry/1.0.0.0
https://stackoverflow.com/questions/28076128/powershell-export-multiple-keys-to-one-reg-file
我们知道,如果不小心弄乱注册表可能会造成很大的麻烦。因此,请先备份,以便在发生灾难时可以恢复,或者至少恢复到系统还原点、VM 检查点/快照。
因此,这里对您发布的代码进行了轻微的修改,但不要将其视为最终修改,因为您需要决定需要采取什么行动以及如何采取行动。
Get-ChildItem "Registry::HKCR" -Recurse -Force `
| where { $_.Name -match 'vlc.'}`
| ForEach-Object {
try {
'Target key to modify / export / whatever'
$_.Name
# 'Registry code here' -WhatIf # remove the whatif if you are sure you are good with what you have
}
catch {
Write-Warning -Message 'Key not accessible'
$_.Name
}
}