删除密钥

删除密钥

如何编辑已在生产的.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
]

答案1

我建议使用登记命令,而不是创建和导入 .reg 文件。

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

或者

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

这些命令可以直接输入到批处理(.cmd)文件中。

答案2

作为描述在这里微软在“删除注册表项和值”部分下创建一个.reg包含要删除的项或值的文件。

删除密钥

您可以删除注册表钥匙通过放置连字符(减号)“-”在键前面像这样:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

删除值

删除注册表价值,放置连字符(减号)“-”在 = 字符之后,如下所示:

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

答案3

我会避免使用其他脚本在 .cmd 文件中使用登记命令。

你可以做类似的事情:

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

答案4

我正在使用 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

或者,我认为我们可以通过这个算法删除一些键或修改一些值:

  1. 将我们要删除/修改的键/值的注册表位置导出到文件(File01.reg)中。
  2. 编辑/修改适当的键/值并保存到新文件(File02.reg)。
  3. 将修改后的文件(File02.reg)导入Windows注册表。

参考出口登记。

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

欢迎提出更明智的改进想法。:) :) :)

相关内容