VLC を起動するコマンドにパラメータを追加するには、Windows 7 レジストリのいくつかのキー値を変更する必要があります。
幸いなことに、すべてのキーは次のキーの子です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-}
そうは言っても。
ここで示されている内容は、設定する値やレジストリ キーを設定するコマンドが表示されていないことを除けば問題ありません。
これらのコマンドレットは、レジストリを処理するために使用できるものです。
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
これらも使用する前に、必ずヘルプ ファイルとその例を参照してください。
PSリモートレジストリ 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
}
}