Even though I’ve been talking about using RegEdit as a standard Windows application, it also supports several command-line options that let you to import and export Registry data from scripts, batch files, or the command line. Both switches run RegEdit as a background process. The export process is quiet; the import process displays a completion dialog, just as it does when you use the Registry→Import Registry File...command.
You tell RegEdit to
export data with the /e
command-line switch. The command looks like this:
regedit /e targetFile [registryPath]
- targetFile
This specifies where RegEdit should write its data. You can specify any path, filename, and extension so long as it’s not a UNC path.
- registryPath
This optional parameter tells RegEdit what to export. If you omit it, the entire Registry is exported. If you specify a key, that key and all its subkeys are exported. The path must be a complete path, including a root key, and you must spell out the name of the root key.
If you want to dump the contents of HKLM\Software\metrowerks to a file named warrior.reg, you can do it like this:
regedit /e c:\dist\hklm\warrior.reg HKEY_LOCAL_MACHINE\SOFTWARE\metrowerks
The simplest way to import data using RegEdit is to specify the name of the file you want imported on the command line, like this:
regedit warrior.reg
RegEdit happily imports the file’s entire
contents and presents a confirmation dialog when done. Alternatively,
you can force RegEdit to replace the entire
contents of the Registry with a .REG file.
RegEdit won’t replace the keys that are
dynamically built (such as HKLM\HARDWARE and HKDD), but everything
else is fair game, so make sure the file you’re loading has a
complete set of Registry contents and that you have a current backup.
To invoke this mode, use the /c
switch, like this:
regedit /c whole-enchilada.reg
When you use the /c
switch, you may get an odd
dialog box accusing you of tampering with the product type. Windows
NT 4.0 keeps a pair of threads running in the background; these
threads do nothing more than watch HKLM\System\Setup\SystemPrefix and
HKLM\System\CurrentControlSet\Control\ProductOptions\ProductType for
changes and reverse any changes that occur. When you reload the
entire Registry, the threads notice and present the warning dialog
box because they’re not smart enough to tell that the value
isn’t any different--just that someone tried to change it.
(For more information on these threads and why they’re there,
see Andrew
Schulman’s article at
ftp://ftp.ora.com/pub/examples/windows/win95.update/ntnodiff.html
.)
Get Managing The Windows 2000 Registry now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.