Welcome to MSFN

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


Sign in to follow this  
Followers 0
Jer0en

Automated importing of multiple .reg-files

6 posts in this topic

Hi,

i've been working on my own unattended bootable installation-cd... and i was wondering if there was an easier way to import multiple .reg-files without having to specify each and every filename.

So i wrote this lil' batch, it tries to solve specified arguments to obtain a valid searchpath to be passed on to the search- & import-routine. You can specify root-directories (i.e. directories with a trailing backslash, like: C:\ or D:\Temp\), regular directories (i.e. directories without a trailing backslash, like: C:\Windows) and you can also specify a specific fully qualified filename/searchpath. - This batch can handle an unlimited amount of commandline parameters [unless there's a limiting factor within Windows i'm not aware of]. - Instead of regedit.exe i'm using a fairly unknown lil' program which doesn't mind any registry-editing restrictions: reg.exe -- and best of all: it's part of the Windows operating system, every Windows 2000 and XP has it. - It supports cmdow.exe, and most of it's commandline arguments. There are two restrictions however: 1) multi-parameter functions like /REN and /MOV and window/process-listings are not supported, and 2) supported functions are restricted to @ i.e. the window in which the batch is running.

I hope you'll enjoy it as much as i do :) If you find a way to improve on it, please send me a copy... e.g. i failed to filter-out directories and driveletters. (But then again, this shouldn't be much of a problem when good paths are provided.)

"type" cannot open a directory or a driveletter, however it does support wildcards... the ideal solution to filter-out these non-registry files... but it didn't work for me :(

type "%TMP_SEARCH_PATH%" > NUL
if NOT ERRORLEVEL 0 goto NEXT

"cd" cannot change directory to a filename, too bad i don't have a way to store the current working path -- because i don't want to lose it! (...i might need it later on.)

cd "%TMP_SEARCH_PATH%" > NUL
if ERRORLEVEL 0 goto NEXT

there's an alternative to the "cd"-solution which does allow me to check and keep my own working path, but it's an ugly solution because an error message doesn't get redirected to NUL:

%ComSpec% /c cd "%TMP_SEARCH_PATH%" > NUL
if ERRORLEVEL 0 goto NEXT

and the final alternative to the "cd"-solution didn't appear to work either:

start /MIN %ComSpec% /c cd "%TMP_SEARCH_PATH%" > NUL
if ERRORLEVEL 0 goto NEXT

P.S. i included a lil' program i wrote in 2002 which has about the same functionality as the ImportReg batch... the differences are: it's an executable (written in Delphi, source-code included) and it processes fonts and Active-X.

Well, try and enjoy my contributions! I'm off reïnstalling Windows now :)

ImportReg.rar

0

Share this post


Link to post
Share on other sites

I just us this to import multiple .reg files :)

for %%i in (%TWK_DIR%\*.reg) do REGEDIT /S %%i

0

Share this post


Link to post
Share on other sites

Instead of CD, use PUSHD to change to a directory, then POPD to return to your working folder.

PUSHD C:\Windows
...
POPD

0

Share this post


Link to post
Share on other sites
Instead of CD, use PUSHD to change to a directory, then POPD to return to your working folder.

PUSHD C:\Windows
...
POPD

Good advice :)

0

Share this post


Link to post
Share on other sites

This is the one I use, it does both inf and reg files, and recurses down the directory. I have the same install.cmd in each directory. I could probably make it better, but it does the trick.

@ECHO OFF
CMDOW @ /HID
TITLE Installing Reg Tweaks

SETLOCAL & PUSHD %~dp0
   FOR /D %%d IN (*) DO CMD.EXE /C %%d\install.cmd
   FOR %%I IN (*.REG) DO REGEDIT /s "%%I"
   FOR %%I IN (*.INF) DO RUNDLL32.EXE setupapi,InstallHinfSection DefaultInstall 128 %%~fnxI
POPD & ENDLOCAL
GOTO :EOF

0

Share this post


Link to post
Share on other sites

These are some cool tips, thanks guys :)

btw, a few days ago i discovered there is a environment variable called "%CD%" which holds the current directory...

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.