2012-01-19 11:11:41 +0000 2012-01-19 11:11:41 +0000
18
18

Удалить ключ или значение реестра с помощью CMD-скрипта?

Как отредактировать уже готовый к производству файл .cmdскрипта, чтобы сценарий удалил определенный ключ реестра в реестре Windows?

Во-первых, возможно ли это вообще, а во-вторых (если это невозможно), могу ли я создать .reg файл и выполнить его из .cmd файла?

Из скрипта .cmd, он не работает:

del "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\SampleKey]"

Этот метод тоже не сработал:

cmd "\networkdrive\regfiles\deleteSampleKey.reg"

Тогда из .reg файла:

Windows Registry Editor Version 5.00
[
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
]

Ответы (5)

26
26
26
2012-03-26 11:08:49 +0000

Я бы рекомендовал использовать команду REG, а не создавать и импортировать .reg файлы.

или

reg delete "HKCU\Some\Registry\Path" /f

Эти команды можно вводить непосредственно в пакетный (.cmd) файл.

15
15
15
2016-02-16 14:32:04 +0000

Как описано здесь ](http://www.robvanderwoude.com/regedit.php) и здесь от Microsoft в разделе “Удаление записей реестра”, вы можете удалить key, поставив минус “-” перед таким ключом:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

И чтобы удалить вход, поставьте минус “-” после такого = char:

[HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]
"MyEntry"=-

_Note: Это только примеры ключей. На самом деле они не будут работать.

4
4
4
2016-02-16 14:57:58 +0000

Я бы избегал использования другого скрипта, так как вы can делаете это в .cmd файле, используя команды REG .

Вы можете сделать что-то подобное:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

Если вы хотите удалить только определенные записи, то вы должны добавить аргумент /v "EntryName" после пути к ключу. Например:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /v "EntryName"

Оба эти аргумента вызовут предупреждение перед удалением значений. Чтобы избежать этого, вам следует использовать аргумент /f в конце.

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f
3
3
3
2012-01-19 11:25:35 +0000

Я использую следующий метод. Это часть риппера MRU для Windows XP, который может помочь. Это текст пакетного файла, который запускается с CMD или из ярлыка. Он создает файл реестра, используя простые эхо-направления, затем импортирует его.

REM ***START REGISTRY SHREDDER***
ECHO CREATING MRU REGISTRY
ECHO .
 ECHO > "%TMP%\MRUKILL.reg" Windows Registry Editor Version 5.00
ECHO >> "%TMP%\MRUKILL.reg" [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Doc Find Spec MRU]
ECHO >> "%TMP%\MRUKILL.reg" [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FindComputerMRU]

REM ***IMPORT THAT REG TO WIPE OUT THEM KEYS AND VALUES****
regedit "%TMP%\MRUKILL.reg"

Я не кодер, я просто делаю некоторые пакетные вещи для себя, так что я часто даже не могу прочитать то, что я написал, но я бы использовал это в качестве шаблона для выполнения чего-то другого.

echos перенаправляются (>) в файл, с одной > для первого перенаправления, и >> для добавления в тот же самый файл. Знак - используется для удаления записи реестра. Вероятно, было бы неплохо оставить последнюю строку и просмотреть файл, который он создал перед импортом. Импорт можно сделать беззвучно, но я не буду делать этого сам.

Отказ от ответственности: Потому что человек может нанести серьезный ущерб системе, удалив записи реестра, резервная копия образа диска, которая может вернуть систему, когда система выходит из строя, необходима.

Свойственные разрешения, высоты и некоторые записи в реестре не позволят пользователю просто уничтожить их, без установки разрешений, по причине их важности.

Вот часть “попросить пользователя”, добавленная просто для удовольствия.

ECHO
 REM ***ASK the USER FIRST***  
ECHO DO YOU WANT TO DELETE REGISTRY MRUS?
SET /P Choice2=type "Y" to Mangle your registry, - -
ECHO . 
IF /I "%Choice2%"=="Y" GOTO SHREDD
ECHO OK WELL THEN I WON'T
ECHO By By 
   REM ***USER DECIDED AGAINST IT***
ECHO .
PAUSE
GOTO FINISH
1
1
1
2014-08-08 05:42:27 +0000

Я использую Windows 7 и это то, что я получил через CMD:

Fri 08/08/2014 8:13:51.72 | C:\Users\MrCMD
>reg.exe delete /?

REG DELETE KeyName [/v ValueName | /ve | /va] [/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.

  ValueName The value name, under the selected Key, to delete.
             When omitted, all subkeys and values under the Key are deleted.

  /ve delete the value of empty value name (Default).

  /va delete all values under this key.

  /f Forces the deletion without prompt.

Examples:

  REG DELETE HKLM\Software\MyCo\MyApp\Timeout
    Deletes the registry key Timeout and its all subkeys and values

  REG DELETE \ZODIAC\HKLM\Software\MyCo /v MTU
    Deletes the registry value MTU under MyCo on ZODIAC

Или, я думаю, мы можем УДЕЛИТЬ некоторые ключи или MODIFY некоторые значения по этому алгоритму:

  1. Экспортировать расположение в реестре ключей/значений, которые мы хотим удалить/изменить в файл (File01.reg).
  2. Редактируем/модифицируем соответствующий ключ/значение и сохраняем в новый файл (File02.reg).
  3. Импорт измененного файла (File02.reg) в реестр Windows.

Ссылка на реестр EXPORT.

Fri 08/08/2014 8:24:53.19 | C:\Users\mardir01
>reg.exe export /?

REG EXPORT KeyName FileName [/y]

  Keyname ROOTKEY[\SubKey] (local machine only).
    ROOTKEY [HKLM | HKCU | HKCR | HKU | HKCC]
    SubKey The full name of a registry key under the selected ROOTKEY.

  FileName The name of the disk file to export.

  /y Force overwriting the existing file without prompt.

Examples:

  REG EXPORT HKLM\Software\MyCo\MyApp File01.reg
    Exports all subkeys and values of the key MyApp to the file File01.reg

Ссылка на реестр IMPORT.

>reg.exe import /?

REG IMPORT FileName

  FileName The name of the disk file to import (local machine only).

Examples:

  REG IMPORT File02.reg
    Imports registry entries from the file File02.reg

Приветствуются более яркие идеи по улучшению. :) :) :)