Jump to content

How to do raid drivers and hotfixes correctly.


webmedic

Recommended Posts

yes you have to edit do.cmd the problem is that the hotfixes in the hotfixes2 and hotfixes3 folder have to have absolute path and will not work like so ./tmp then have to have f:/wxppro/hotfixes/tmp.

You need to edit the file by hand and place the correct paths in it. There should only be two of those one for the hotfixes in hotfixes2 folder and one in hotfixes3 folder. I'm working on a way to pass variables so that this can be a little easier but for now you will have to edit the file by hand. If you can not do that there is not much I can do to help you.

Link to comment
Share on other sites


ok it maybe that i have not slept in a few day i don't see where to put the path.

F:\wxppro\hotfixes\tmp\

? would be in my case

D:\wxppro\1

would that be right?

wow webmedic this is a lot different then the first one :)

Tbone2

Link to comment
Share on other sites

ah ok yes I changed things around a little. I'm trying to get it set up nice to be able to be used easily by others.

On side note I have added command line stuff so now you wont have to mess with the directory stuff any more. Let me test a little more and then I'll post it.

Link to comment
Share on other sites

ok new and improved come and get it. This one will well it wont slice and dice for you but it will automaticly figure out the directory it is being run from. No more need to edit the file also to note it will now clean up after itself better and there is more logic now to add missing directories and things if they are missing.

Enjpoy guys and let me know how it goes.

This is still for testing but should work ok and is much improved.

CLS
@echo off
:: setlocal enableextensions
echo. > log.txt

:: check if hotfix file exists
if not exist 1\*.exe echo No hotfixes present. 2>&1 | bin\mtee/+ log.txt
if not exist 1\*.exe echo Please add your hotfixes. 2>&1 | bin\mtee/+ log.txt
if not exist 1\*.exe goto _end

:: create folders Needed for setup
echo. 2>&1 | bin\mtee/+ log.txt
echo Creating directories and set up. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
SET PrepDir=
if "%1" == "/prep" set PrepDir=%2
IF DEFINED PrepDir goto :Make_Dir
echo using for to find dir
FOR /F "delims=" %%i IN ('cd') DO SET PrepDir=%%i

:Make_Dir
echo PrepDir = %PrepDir% 2>&1 | bin\mtee/+ log.txt
if not exist 4 md 4 2>&1 | bin\mtee/+ log.txt
if not exist 5 md 5 2>&1 | bin\mtee/+ log.txt
if not exist 5\svcpack md 5\SVCPACK 2>&1 | bin\mtee/+ log.txt
if not exist tmp md tmp 2>&1 | bin\mtee/+ log.txt

:: delete any files in extract and final folder
echo. 2>&1 | bin\mtee/+ log.txt
echo Deleteing stale files. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
if exist 4\* del /s /q 4\* 2>&1 | bin\mtee/+ log.txt
if exist 5\* del /s /q 5\* 2>&1 | bin\mtee/+ log.txt

:: extract hotfix to extract folder
echo. 2>&1 | bin\mtee/+ log.txt
echo Adding hotfixes from hotfix1 folder 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt

for /f "usebackq delims==" %%i in (`dir /b 1\*.exe`) do COPY /Y "1\%%~ni.EXE" "tmp\????????.EXE" >> log.txt
for /f "usebackq delims==" %%i in (`dir /b 1\*.exe`) do del /f /q 1\%%~ni.EXE >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do Move /Y tmp\%%~ni.exe 1 >> log.txt
for /f "usebackq delims==" %%i in (`dir /b 1\*.exe`) do 1\%%~ni.exe /q /x:4 >> log.txt

:: extract hotfix to extract folder thisis for newer style hot fixes
echo. 2>&1 | bin\mtee/+ log.txt
echo Adding hotfixes from hotfix2 folder 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt

for /f "usebackq delims==" %%i in (`dir /b 2\*.exe`) do COPY /Y "2\%%~ni.EXE" "tmp\????????.EXE" >> log.txt
for /f "usebackq delims==" %%i in (`dir /b 2\*.exe`) do del /f /q 2\%%~ni.EXE >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do MD tmp\%%~ni >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do tmp\%%~ni.exe /Q /T:%PrepDir%\tmp\%%~ni /C >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do xcopy /d /h /y tmp\%%~ni\*.* 4 >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do bin\rm.exe /fvn tmp\%%~ni >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do Move /Y tmp\%%~ni.exe 2 >> log.txt

attrib -R -A -S -H tmp\* /S
:: extract hotfix to extract folder thisis for newer style hot fixes
echo. 2>&1 | bin\mtee/+ log.txt
echo Adding hotfixes from hotfix3 folder 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt

for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do COPY /Y "3\%%~ni.EXE" "tmp\????????.EXE" >> log.txt
for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do del /f /q 3\%%~ni.EXE >> log.txt
for /f "usebackq delims==" %%i in (`dir /b 3\*.cmd`) do del /f /q 3\%%~ni.cmd >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do MD tmp\%%~ni >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do tmp\%%~ni.exe /Q /T:%PrepDir%\tmp\%%~ni /C >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do xcopy /d /h /y tmp\%%~ni\*.* 4 >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do del /f /q tmp\%%~ni\*.* >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do bin\rm.exe /fvn tmp\%%~ni >> log.txt
for /f "usebackq delims==" %%i in (`dir /b tmp\*.exe`) do Move /Y tmp\%%~ni.exe 3 >> log.txt

echo. 2>&1 | bin\mtee/+ log.txt
echo Adding cmd files to hotfix3 folder 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt

for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do echo CLS 2>&1 | bin\mtee /+ log.txt 3\%%~ni.cmd
for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do echo @echo off 2>&1 | bin\mtee /+ log.txt /+ 3\%%~ni.cmd
for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do echo start /wait %systemdrive%\install\system\hotfixes3\%%~ni.exe /T:%systemdrive%\install\tmp /C:"%systemdrive%\install\tmp\dahotfix.exe /q /n" /Q 2>&1 | bin\mtee /+ log.txt /+ 3\%%~ni.cmd
for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do echo EXIT 2>&1 | bin\mtee /+ log.txt /+ 3\%%~ni.cmd

:: check extraction took place
echo. 2>&1 | bin\mtee/+ log.txt
echo Checking for extracted files 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
if not exist 4\* goto _end

:: move hotfix to svcpack folder
echo. 2>&1 | bin\mtee/+ log.txt
echo Moving hotfixes to svcpack folder. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
copy /y 1\*.exe 5\svcpack >> log.txt
copy /y 2\*.exe 5\svcpack >> log.txt
copy /y 3\*.cmd 5\svcpack >> log.txt
copy /y 3\*.exe 5\svcpack >> log.txt

:: delete unwanted files from extract folder
echo. 2>&1 | bin\mtee/+ log.txt
echo delete unwanted files from extract folder. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
for /f %%i in (files\hotkill.ini) do del /f /q /s 4\%%i 2>&1 | bin\mtee/+ log.txt
for /f %%i in (files\hotkill.ini) do del /f /q /s 4\sp2\%%i 2>&1 | bin\mtee/+ log.txt

:: move cat files to svcpack folder
echo. 2>&1 | bin\mtee/+ log.txt
echo move cat files to svcpack folder. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
for %%i in (4\*.cat 4\update\*.cat 4\sp2\update\*.cat) do move /y %%i 5\svcpack 2>&1 | bin\mtee/+ log.txt

::NEW BIT::
echo. 2>&1 | bin\mtee/+ log.txt
echo Updating sp1.cab. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
xcopy /d /h /u /y 4\*.* files\sp1 >> log.txt
xcopy /d /h /u /y 4\sp2\*.* files\sp1 >> log.txt
bin\cabarc.exe N 5\sp1.cab files\sp1\*.* >> log.txt
::END::

:COMPRESS
:: compress files and copy to output folder
echo. 2>&1 | bin\mtee/+ log.txt
echo compress files and copy to output folder. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
bin\compress.exe -d -r -zx21 4\* 5 >> log.txt
bin\compress.exe -d -r -zx21 4\sp2\* 5 >> log.txt

:: create svcpack.inf file
echo. 2>&1 | bin\mtee/+ log.txt
echo create svcpack.inf file. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
echo [Version] 2>&1 | bin\mtee /+ log.txt 5\svcpack.inf
echo Signature="$Windows NT$" 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo MajorVersion=5 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo MinorVersion=1 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo BuildNumber=2600 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo. 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo [SetupData] 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo CatalogSubDir="\i386\svcpack" 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo. 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo [SetupHotfixesToRun] 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf

for /f "usebackq delims==" %%i in (`dir /b 1\*.exe`) do echo %%~ni.exe /n /q /u /z 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
for /f "usebackq delims==" %%i in (`dir /b 2\*.exe`) do echo %%~ni.exe /Q:A /R:N 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
::for /f "usebackq delims==" %%i in (`dir /b 3\*.exe`) do echo %%~ni.exe /T:C:\\install\tmp /C:"c:\\install\tmp\dahotfix.exe /q /n" /Q >> 5\svcpack.inf
for /f "usebackq delims==" %%i in (`dir /b 3\*.cmd`) do echo %%~ni.cmd 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo. 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
echo [ProductCatalogsToInstall] 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf
for /f "usebackq delims==" %%i in (`dir /b 5\svcpack\*.cat`) do echo %%~ni.cat 2>&1 | bin\mtee /+ log.txt /+ 5\svcpack.inf

:: compress svcpack.inf
echo. 2>&1 | bin\mtee/+ log.txt
echo compress svcpack.inf file. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
bin\compress.exe -d -r -zx21 5\svcpack.inf >> log.txt
:: comment out the next line if you want to examing svcpack.inf afterwards.
:: del /q 5\svcpack.inf

:: copy winnt.sif to output folder
echo. 2>&1 | bin\mtee/+ log.txt
echo copy extra files. 2>&1 | bin\mtee/+ log.txt
echo __________________________________________________________________________ 2>&1 | bin\mtee/+ log.txt
echo. 2>&1 | bin\mtee/+ log.txt
if exist files\winnt.sif xcopy /y files\winnt.sif 5 >> log.txt

:: copy dosnet.inf to output folder
if exist files\dosnet.inf xcopy /y files\dosnet.inf 5 >> log.txt

:: copy TXTSETUP.SIF to output folder
if exist files\TXTSETUP.SIF xcopy /y files\TXTSETUP.SIF 5 >> log.txt
if exist files\sys\*.sys xcopy /y files\sys\*.sys 5 >> log.txt

:: clean up
:: if exist 1\* del /s /q 1\*
:: if exist 2\* del /s /q 2\*
:: if exist 3\* del /s /q 3\*
:: attrib -R -A -S -H tmp\* /S
:: rd /s /q tmp

goto _end

:_end

man this is turning into a much larger project than at first I thought it would be.

Link to comment
Share on other sites

if you get an error about not finding a directory correcty it's the stupid mdac hotfix. I have yet to find a way to impliment it this way. I may have to do some things a little differently. I will most likely have to laod it through cmdlines.txt or at some other palce but at lest the files are still slipstreamed into the installer.

Link to comment
Share on other sites

I'm not sure about this exactly here is a list of the hotfixes that I use.

KB820291.exe /n /q /u /z

KB821253.exe /n /q /u /z

KB821557.exe /n /q /u /z

KB823559.exe /n /q /u /z

KB823980.exe /n /q /u /z

Q322011.exe /n /q /u /z

Q323255.exe /n /q /u /z

Q327979.exe /n /q /u /z

Q328310.exe /n /q /u /z

Q329048.exe /n /q /u /z

Q329115.exe /n /q /u /z

Q329170.exe /n /q /u /z

Q329390.exe /n /q /u /z

Q329834.exe /n /q /u /z

Q810565.exe /n /q /u /z

Q810833.exe /n /q /u /z

Q811493.exe /n /q /u /z

Q814033.exe /n /q /u /z

Q814995.exe /n /q /u /z

Q815021.exe /n /q /u /z

Q815485.exe /n /q /u /z

Q817606.exe /n /q /u /z

js56nen.exe /Q:A /R:N

KB822964.exe /Q:A /R:N

q330994.exe /Q:A /R:N

Q810577.exe /Q:A /R:N

q818529.exe /Q:A /R:N

q822925.exe /Q:A /R:N

Q823718_.cmd

right of fhand the hot fix belongs in the second directory because it was the ie fix and requires different switches than the others but it works fine here.

On another note make sure you dont aply the hot fix for windows media player 9.0 as it will not be installed at this point in the install.

also send me a copy of your log.txt which is created by the new do.cmd. It dumps much info out which is very usable for me to figure things out with.

bah at webmedic dot net

Link to comment
Share on other sites

wow...so if i read that correctly, instead of using one command line for each of the 36 hotfixes that i downloaded, I can just one line and it will install all the exe's in that particular folder, waiting for each one to finish and starting the next one.

if so, pretty good! :)

Link to comment
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...