cmd에서 기존 레지스트리 키 값 이름의 데이터를 어떻게 수정합니까?


19

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 ++ 만 제거하고 싶습니다.

이걸 어떻게 다룰까요? ...

당신은 내가이 모든 것을 다시 입력 할 것으로 기대하지 않습니다 ?? ......


커맨드 라인에서 PATH를 편집하는 것과 관련하여 특별히 궁금한 점이 있습니까? 또한 모든 reg 값을 바꾸거나 추가 / 추가하기는 쉽지만 값의 일부를 수정 / 삭제하려면 더 많은 노력이 필요합니다.
Karan

답변:


37

REG ADD덮어 쓰기를 강제하려면 "/ f"매개 변수와 함께 사용하십시오 .

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

참고 : 이 샘플에서는 이전 값과 새 값에 공백이 없다고 가정합니다. 그렇지 않으면 따옴표를 추가하고 "토큰"매개 변수를 변경해야합니다. 간결성을 위해 추가 오류 검사가 생략되었습니다. 그러나 모든 레지스트리 조작 코드는 반드시 적절한 오류 검사를 수행해야합니다.


? 그래서 ...에 "덮어 쓰기"가 실제로 값 이름에 데이터를 추가 강요 ... 그것은 덮어 쓰지 않습니다 기존 데이터 ?? ...
사미르

위의 두 번째 예를 사용 하여 문자열 끝에 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v Path /d ;C:\Program Files (x86)\Some_software /f추가 할 수 있다고 말하고 ;C:\Program Files (x86)\Some_software있습니까?
Samir

아니요, "REG / ADD"는 삽입하거나 덮어 씁니다. 추가하려면 값을 "REG / QUERY"하고 원하는 값을 계산 한 다음 "REG / ADD"로 다시 설정해야합니다.
Axel Kemper 2016 년

그렇습니다. 방금 시도했습니다. reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false 값 업그레이드 완료, 덮어 쓰기 (예 / 아니요)? 따라서 / f 스위치가 없으면 덮어 쓸 것인지 묻습니다.
Samir

기존 값 이름에 데이터를 추가하는 방법을 설명 할 수 있습니까? "계산"이란 무엇입니까?
Samir

2

당신은 또한 할 수 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 기사를 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.