지정된 레지스트리 서브키의 내용을 한 번에 하나씩 열람합니다.
Loop, Reg, KeyName , Mode
문자 그대로의 단어 Reg
(대소문자 구분). 변수나 표현식 불가능.
The full name of the registry key such as HKLM\Software
or %FullPathOfKey%
.
This must start with HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, or HKEY_CURRENT_CONFIG (or the abbreviations for each of these, such as HKLM). 원격 레지스트리에 접근하려면, 컴퓨터 이름과 쌍점을 앞에 배치하십시오. 다음 예제와 같이: \\workstation01:HKEY_LOCAL_MACHINE
If blank or omitted, only values are included and subkeys are not recursed into. Otherwise, specify one or more of the following letters:
비추천: 이 구문는 새 스크립트에 사용을 추천하지 않습니다. Use the new syntax instead.
Loop, RootKey , Key, IncludeSubkeys?, Recurse?
HKEY_LOCAL_MACHINE (HKLM), HKEY_USERS (HKU), HKEY_CURRENT_USER (HKCU), HKEY_CLASSES_ROOT (HKCR), 또는 HKEY_CURRENT_CONFIG (HKCC) 중 하나가 되어야 합니다.
원격 레지스트리에 접근하려면, 컴퓨터 이름과 쌍점을 앞에 배치하십시오. 다음 예제와 같이: \\workstation01:HKEY_LOCAL_MACHINE
키의 이름 (예, Software\SomeApplication). 비어 있거나 생략하면, RootKey의 내용이 열람됩니다.
If blank or omitted, it defaults to 0 (only values are retrieved). 그렇지 않으면, 다음 숫자 중 하나를 지정하십시오:
비어 있거나 생략하면, 기본값은 0 (하위키에 재귀하지 않습니다)입니다. 그렇지 않으면, 다음 숫자 중 하나를 지정하십시오:
레지스트리-회돌이는 레지스트리 값 또는 하위키의 집단을 한 번에 하나씩 처리하고 싶을 때 유용합니다. 값과 하위키는 역순으로 (아래에서 위로) 열람되므로 회돌이를 방해하지 않고 회돌이 안에 RegDelete를 사용할 수 있습니다.
다음 변수들이 레지스트리-회돌이 안에 존재합니다. 내부 레지스트리-회돌이가 외부 레지스트리-회돌이 안에 싸여 있다면, 내부 회돌이의 레지스트리 항목이 우선 순위를 갖습니다:
변수 | 설명 |
---|---|
A_LoopRegName | 현재 열람된 항목의 이름. 값 이름 또는 하위키의 이름 중 하나입니다. 값 이름에 값이 할당되어 있으면 Windows RegEdit이 "(Default)"로 보여주는 값 이름이 열람됩니다. 그러나 A_LoopRegName는 값 이름에 대하여 비워집니다. |
A_LoopRegType | 현재 열람된 항목의 유형, 다음 단어 중 하나입니다: KEY (즉, 현재 열람된 항목은 값이 아니라 하위키입니다), REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_LINK, REG_RESOURCE_LIST, REG_FULL_RESOURCE_DESCRIPTOR, REG_RESOURCE_REQUIREMENTS_LIST, REG_DWORD_BIG_ENDIAN (아마도 대부분의 윈도우즈 하드웨어에서는 보기 힘들 것입니다). 현재 열람된 항목이 미지의 유형이면 비어 있습니다. |
A_LoopRegKey | 접근 중인 루트 키의 이름 (HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, 또는 HKEY_CURRENT_CONFIG). 원격 레지스트리 접근을 위하여, 이 값은 컴퓨터 이름을 포함하지 않습니다. |
A_LoopRegSubKey | Name of the current subkey. 이 키는 Key 매개변수와 같습니다. 단, Recurse 매개변수가 재귀적으로 다른 하위키들을 탐험하는 데 사용중이면 예외입니다. 그런 경우라면, 현재 열람된 항목의 전체 경로입니다. 루트 키를 포함하지 않습니다. 예를 들어: Software\SomeApplication\My SubKey |
A_LoopRegTimeModified | 현재 하위키 또는 그의 값이 마지막으로 변경된 시간. 형식은 YYYYMMDDHH24MISS. 이 변수는 현재 열람된 항목이 하위키가 아니면 비어 있습니다 (즉, A_LoopRegType는 단어 KEY가 아닙니다). |
레지스트리-회돌이 안에서 사용될 때, 다음 명령어들을 사용하면 현재 열람된 항목을 처리해야 할지 말지 간단하게 알려줄 수 있습니다:
구문 | 설명 |
---|---|
RegRead, OutputVar |
현재 항목을 읽습니다. 현재 항목이 키이면, ErrorLevel에 1이 설정되고 OutputVar는 비워집니다. |
RegWrite, Value RegWrite |
현재 항목을 씁니다. Value를 생략하면, 항목은 그의 유형에 따라 0이 되거나 비워집니다. 현재 항목이 키이면, ErrorLevel은 1이 설정되고 다른 효과는 전혀 없습니다. |
RegDelete |
현재 항목을 삭제합니다. 현재 항목이 키이면, 그의 서브키 그리고 그 안에 포함된 값까지 함께 삭제됩니다. |
When accessing a remote registry (via the RootKey or KeyName parameter described above), the following notes apply:
Blocks, Break, Continue, 그리고 A_Index 변수 (모든 유형의 회돌이에 존재함)에 관한 정보는 Loop를 참조하십시오.
Loop, Break, Continue, 블록, RegRead, RegWrite, RegDelete, SetRegView
사용자가 타자한 인터넷 익스플로러의 URL 이력을 삭제합니다.
Loop, HKEY_CURRENT_USER, Software\Microsoft\Internet Explorer\TypedURLs RegDelete
Loop, Reg, HKEY_CURRENT_USER\Software\Microsoft\Windows, KVR { if (A_LoopRegType = "key") value := "" else { RegRead, value if ErrorLevel value := "*error*" } MsgBox, 4, , %A_LoopRegName% = %value% (%A_LoopRegType%)`n`nContinue? IfMsgBox, NO, break }
SetBatchLines -1 ; 최대 속도로 검색합니다. RegSearchTarget := "Notepad" ; 서브루틴에 무엇을 검색하고 싶은지 알립니다. Gosub, RegSearch return RegSearch: ContinueRegSearch := true Loop, Reg, HKEY_LOCAL_MACHINE, KVR { Gosub, CheckThisRegItem if not ContinueRegSearch ; 멈추어야 합니다. return } Loop, Reg, HKEY_USERS, KVR { Gosub, CheckThisRegItem if not ContinueRegSearch ; 멈추어야 합니다. return } Loop, Reg, HKEY_CURRENT_CONFIG, KVR { Gosub, CheckThisRegItem if not ContinueRegSearch ; 멈추어야 합니다. return } ; 주의: HKEY_USERS를 검색 중이라면 ; HKEY_CURRENT_USER는 검색할 필요가 없다고 필자는 믿습니다. ; 마찬가지로 HKEY_LOCAL_MACHINE를 검색 중이라면. ; HKEY_CLASSES_ROOT도 검색할 필요가 없을 것입니다. return CheckThisRegItem: if (A_LoopRegType = "KEY") ; 키 이름도 점검하고 싶다면 다음 두 줄을 제거하십시오. return RegRead, RegValue if ErrorLevel return if InStr(RegValue, RegSearchTarget) { MsgBox, 4, , The following match was found:`n%A_LoopRegKey%\%A_LoopRegSubKey%\%A_LoopRegName%`nValue = %RegValue%`n`nContinue? IfMsgBox, No ContinueRegSearch := false ; 호출자에게 검색을 멈추라고 알립니다. } return