2014-01-13 7 views
0

У меня есть задание от моего начальника относительно пакетного сценария. Мне нужно найти определенное значение в файле реестра Windows (я определяю путь). Это значение должно быть SET как переменная (т. Е.% VARIABLENAME%). Вот и изгиб:Batch Script Registry Advice

Если значение в реестре равно одной цифре/символу, ему необходимо начинать с трех ведущих нулей. Две цифры/символы, две ведущие нули, три цифры/символы, а затем один из ведущих нулей вплоть до максимум четырех символов (пример: 0123). Дело в том, что если значение меньше четырех цифр/символов, необходимо добавить достаточное количество нулей, чтобы сделать его максимум четырьмя. Если это уже в четыре, ничего не делайте.

ПРИМЕЧАНИЕ: сам файл реестра не будет меняться, просто так, как мы эхо/выражаем его в пределах заданной переменной.

Так, если переменная должна была быть эхом из это должно выглядеть так:

echo %VARIABLENAME% 

Результат должен быть: 0abc

Сразу же, я знаю, что это повлечет за собой некоторую форму сопоставления с образцом, а также конструкцию цикла for, но я парень Linux, а не парень из Windows.

Любая помощь будет оценена по достоинству.

ответ

1
set var=0000%var% 
set var=%var:~-4% 

установит переменную var ведущего обнуление заполненных

0

Это должно работать.

set /p InputText=Type your text here: 
Set RegSearch=REG QUERY HKLM /v 
Set Regend= /s 
set zero=%0000%InputText% 
set out=%RegSearch% "%zero:~-4%" %Regend% 
%out% 

Это Устанавливает InputText со значением ввода

set /p InputText=Type your text here: 

Просто способ поиска

Set RegSearch=REG QUERY HKLM /v 
Set Regend= /s 

Это покажет Зерро нам нужно только последние 4 рыть

set zero=0000%InputText% 

Как только установлен ноль позволяет установить результат. start reg, zero, regedit.

set out=%RegSearch% "%zero:~-4%" %Regend% 
%out% 

Вы можете проверить результат с помощью эхо% из%

Используйте эту ссылку, чтобы увидеть больше команд реестра. http://technet.microsoft.com/en-us/library/cc742028.aspx

REG Query KeyName [/v [ValueName] | /ve] [/s] [/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator] 
    KeyName [\\Machine\]FullKey 
     Machine - Name of remote machine, omitting defaults to the 
     current machine. Only HKLM and HKU are available on remote machines 
     FullKey - in the form of ROOTKEY\SubKey name 
     ROOTKEY - [ HKLM | HKCU | HKCR | HKU | HKCC ] 
     SubKey - The full name of a registry key under theselected ROOTKEY 

    /v Queries for a specific registry key values. 
     If omitted, all values for the key are queried. 
     Argument to this switch can be optional only when specified 
     along with /f switch. This specifies to search in valuenames only. 
    /ve Queries for the default value or empty value name (Default). 
    /s Queries all subkeys and values recursively (like dir /s). 
    /se Specifies the separator (length of 1 character only) in 
     data string for REG_MULTI_SZ. Defaults to "\0" as the separator. 
    /f Specifies the data or pattern to search for. 
     Use double quotes if a string contains spaces. Default is "*". 
    /k Specifies to search in key names only. 
    /d Specifies the search in data only. 
    /c Specifies that the search is case sensitive. 
     The default search is case insensitive. 
    /e Specifies to return only exact matches. 
     By default all the matches are returned. 
    /t Specifies registry value data type. 
     Valid types are: REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, 
     REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE 
     Defaults to all types. 
    /z Verbose: Shows the numeric equivalent for the type of the valuename. 

Examples: 
1. REG Query HKLM\Software\Microsoft\ResKit /v Version 
     Displays the value of the registry value Version 
2. REG Query \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s 
    Displays all subkeys and values under the registry key Setup 
    on remote machine ABC 
3. REG Query HKLM\Software\Microsoft\ResKit\Nt\Setup /se # 
    Displays all the subkeys and values with "#" as the seperator 
    for all valuenames whose type is REG_MULTI_SZ. 
4. REG Query HKLM /f SYSTEM /t REG_SZ /c /e 
    Displays Key, Value and Data with case sensitive and exact 
    occurrences of "SYSTEM" under HKLM root for the data type REG_SZ 
5. REG Query HKCU /f 0F /d /t REG_BINARY 
    Displays Key, Value and Data for the occurrences of "0F" in data 
    under HKCU root for the data type REG_BINARY 
6. REG Query HKLM\SOFTWARE /ve 
    Displays Value and Data for the empty value (Default) under HKLM\SOFTWARE