Cmdから既存のレジストリキー値を変更する方法を教えてください。
Regコマンドにはたくさんのオプションとスイッチ、ベルとホイッスルがあります。キー、サブキー、および値の名前を照会、追加、および削除するためのオプションがあります。しかし、既存の値の名前のデータをどのように変更しますか?値の名前を完全に削除してから再度追加し、変更した値/データを再入力しますか?それはとても面倒なようです….
私はスクリプト/バッチの自動化には興味がありません。少なくとも今は、cmd Regコマンドを使って簡単なレジストリ編集をしたいだけです。後で追加データを追加してキーを追加するためだけにキーを破棄する必要はありません。 Regeditでも同じことができます。
これはあなたが思考プロセスを促進するための例です。
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: true
これで問題ありませんが、値データを "true"から "false"に変更する必要がある場合はどうなりますか。だから私はこれを代わりに得るように:
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: false
Cmdからそれを実行するためのオプションと構文は何ですか?....
更新:
私は今、上記の例は非常に簡単すぎるかもしれないことに気付きました...
上記の例では、私はただ以下をすることができます:
reg delete HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone
reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
その中に含まれるデータは非常に小さいので、値を完全に削除してから再度追加する余裕があります。それは単に "true"や "false"のような文字列です。再作成するのはそれほど難しくありません。
データ内容が多い難しい例は、次のとおりです。
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Value name: Path
Value type: Reg_Sz
Data: C:\Program Files (x86)\ImageMagick-6.8.5-Q16;C:\PROGRA~2\GTK2-R~1\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files (x86)\WinHasher";C:\Program Files (x86)\Android\android-sdk\tools\;C:\Program Files (x86)\Android\android-sdk\platform-tools\;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\;C:\Program Files (x86)\Common Files\Teleca Shared;C:\Program Files (x86)\Notepad++
データコンテンツの一部だけを削除したいのですが。具体的には、最後の検索パスであるC:\ Program Files(x86)\ Notepad ++のみを削除します。
どうやってこれに取り組むのですか?.
あなたは私がこれすべてを再入力することを期待していません?? ......
上書きを強制するには、 "/ f"パラメータを付けてREG ADD
を使用します。
REG ADD /?
はパラメータを説明します。
REG ADD KeyName [/v ValueName | /ve] [/t type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey
Machine Name of remote machine - omitting defaults to the current machine
Only HKLM and HKU are available on remote machines
FullKey ROOTKEY\SubKey ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey
The full name of a registry key under the selected ROOTKEY
/v The value name, under the selected Key, to add
/ve adds an empty value name <no name> for the key
/t RegKey data types
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN | REG_DWORD |
REG_BINARY | REG_DWORD_LITTLE_ENDIAN | REG_NONE | REG_EXPAND_SZ ]
If omitted, REG_SZ is assumed
/s Specify one character that you use as the separator in your data
string for REG_MULTI_SZ. If omitted, use "\0" as the separator
/d The data to assign to the registry ValueName being added
/f Force overwriting the existing registry entry without Prompt
新しい値を挿入したり、文字列値を "false"から "true"に切り替えるには、次のようなコマンドを使用します。
reg add HKCU\Software\Citrix\Receiver /t REG_SZ /v UpgradeDone /d true /f
書き戻す前に既存の値を読み込み、いくつかの文字列を追加する例:
set append=XXXXXX
set key=HKCU\Software\myTest
set value=myValue
set oldVal=
for /F "skip=2 tokens=3" %%r in ('reg query %key% /v %value%') do set oldVal=%%r
echo previous=%oldVal%
set newVal=%oldVal%%append%
reg add %key% /v %value% /d %newVal% /f
注:このサンプルでは、古い値と新しい値にはブランクがないと想定しています。それ以外の場合は、引用符を追加して "tokens"パラメータを変更する必要があります。簡潔にするため、余分なエラーチェックは省略しました。ただし、allのレジストリ操作コードでは、必ず適切なエラーチェックを行う必要があります。
REG import foo.reg
で、foo.reg
は、regedit.exe
からエクスポートする通常のレジストリ情報を含むファイルでもあります。
あなたの例では、これは次のようになります:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"Path"="C:\Program Files (x86)\ImageMagick-6.8.5-Q16;C:\PROGRA~2\GTK2-R~1\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files (x86)\WinHasher";C:\Program Files (x86)\Android\android-sdk\tools\;C:\Program Files (x86)\Android\android-sdk\platform-tools\;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\;C:\Program Files (x86)\Common Files\Teleca Shared;C:\Program Files (x86)\Notepad++"
詳細については、 このMicrosoft Technetの記事 をご覧ください。