Jump to content

Crash&Burn

Member
  • Posts

    359
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    Canada

Everything posted by Crash&Burn

  1. I unpacked those KB's, along with all the other Win2K Hotfixes I use, including WildBill's unofficial hotfixes. I ran a .cmd file I created to find the most recent versions of files in all the unpacked hotfixes. 1) The highest Version number was kept. 2) If the version of the two files was the same, the script would prefer files from the UpdateRollup. _) ELSE the file from the highest numbered KB was kept. I noticed something fairly interesting once I was sure the script was working. NOTE: I generated the file list with Total Commander, SubDir Branch view, sorted files by Name, and secondarily sorted by Date (Newest First). Selected all files and pressed the button assigned to calling the batch. It could likely be generated with a few DIR commands, and subsequent SORT's. As well, I also extracted some of the subsequent CAB files inside the Hotfix folders. All of these Hotfix folders were empty, when the script was complete. Extracting Hotfix Command: (Selected Files in TC, and Ran with a TC ButtonBar button: Command: cmd /c ExtractMSHotFix.cmd Parameters: %S @ECHO OFF :MAIN IF "%~1" == "" GOTO:EOF MKDIR %~n1% 1>NUL 2>&1 IF "%~x1" == ".exe" %~1 /q -x:%~n1&&SHIFT /1&&GOTO:MAIN IF "%~x1" == ".EXE" %~1 /q -x:%~n1&&SHIFT /1&&GOTO:MAIN IF "%~x1" == ".msi" msiexec /a %~1 /qb TARGETDIR="%~dp1%~n1"&&SHIFT /1&&GOTO:MAIN IF "%~x1" == ".MSI" msiexec /a %~1 /qb TARGETDIR="%~dp1%~n1"&&SHIFT /1&&GOTO:MAIN SHIFT /1 GOTO:MAIN MAIN Hotfix file mover, MvHF1.cmd @ECHO OFF CD l:\_SLIPS_\HF_2K__Unpacked2\ IF "%~2" NEQ "" GOTO:NEXT%~2 FOR /F "delims=" %%F IN ('DIR /ad/b') DO ( MKDIR ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\empty.cat ..\HF_2K_ReMoved2\%%F 1>NUL 2>&1 MOVE .\%%F\iecustom.dll ..\HF_2K_ReMoved2\%%F 1>NUL 2>&1 MOVE .\%%F\spmsg.dll ..\HF_2K_ReMoved2\%%F 1>NUL 2>&1 MOVE .\%%F\spuninst.exe ..\HF_2K_ReMoved2\%%F 1>NUL 2>&1 MOVE .\%%F\update\*.inf ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\*.cat ..\HF_2K_Removed2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\eula.txt ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\iecustom.dll ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\spcustom.dll ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\update.exe ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\update.inf ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\update.ver ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE .\%%F\update\updspapi.dll ..\HF_2K_ReMoved2\%%F\update 1>NUL 2>&1 MOVE/Y .\%%F\WM41\* .\%%F 1>NUL 2>&1 MOVE/Y .\%%F\WM71\* .\%%F 1>NUL 2>&1 MOVE/Y .\%%F\WM8\* .\%%F 1>NUL 2>&1 MOVE/Y .\%%F\WM9\* .\%%F 1>NUL 2>&1 MOVE/Y .\%%F\WM9L\* .\%%F 1>NUL 2>&1 ) COPY "%~1" .\TCFileList.dat :: Remove this GOTO:EOF, if you want to run the .cmd all in one pass. GOTO:EOF :NEXT1 DEL HFFileList.ver 1>NUL 2>&1 DEL HFFileList.uni 1>NUL 2>&1 IF NOT EXIST .\TCFileList.dat COPY "%~1" .\TCFileList.dat FOR /F "delims=" %%F IN (TCFileList.dat) DO ( IF "%%~xF" == ".dll" CALL:_ParseBINARY "%%~F" IF "%%~xF" == ".exe" CALL:_ParseBINARY "%%~F" ) :: Remove this GOTO:EOF, if you want to run the .cmd all in one pass. GOTO:EOF :NEXT2 SET CWD="%CD%" SET COUNT=0 :_SplitPATH FOR /F "tokens=1* delims=\" %%F IN (%CWD%) DO CALL:_CheckPATH "%%~G" IF %CWD% NEQ "" GOTO:_SplitPATH SET /A COUNT=%COUNT%+1 SET LastFile=NULL SET LastFileVersion=0 SET LastFilePath="" DEL HFFileMove.List 1>NUL 2>&1 FOR /F "usebackq tokens=1-3 delims= " %%F IN ("HFFileList.ver") DO ( IF "%%~G" NEQ "-" CALL:_SET_LastFile %%~F %%~G "%%~H" ) FOR /F "usebackq tokens=1-3 delims= " %%F IN ("HFFileList.uni") DO ( IF "%%~G" NEQ "-" CALL:_SET_LastFile %%~F %%~G "%%~H" ) GOTO:EOF :_ParseBINARY FOR /F "usebackq tokens=5 delims= " %%V IN (`"filever %~1"`) DO ( FOR /F "usebackq delims=" %%U IN (`ECHO %~1 ^| FINDSTR /I /V /C:"\uniproc"`) DO ( ECHO %~nx1 %%V "%~fp1">> HFFileList.ver GOTO:EOF ) ECHO %~nx1 %%V "%~fp1">> HFFileList.uni ) GOTO:EOF :_CheckPATH SET CWD="%~1"&&SET /A COUNT=%COUNT%+1&&GOTO:EOF GOTO:EOF :_SET_LastFile FOR /F "usebackq" %%L IN (`ECHO %LastFile% ^| FINDSTR /I /V /C:"%~1"`) DO ( REM IF "%~1" NEQ "%LastFile%" ( SET LastFile=%~1 SET LastFileVersion=%~2 SET LastFilePath="%~3" GOTO:EOF ) :_CheckVersion IF "%LastFileVersion%"=="%~2" GOTO:_COMPARE_KBS CALL:_GetVERSION 1 %LastFileVersion% CALL:_GetVERSION 2 %~2 IF %VER1% LSS %VER2% GOTO:_AddLastToList IF %VER1% GTR %VER2% GOTO:_AddCurrToList REM IF %LastFileVersion% LSS %~2 GOTO:_AddLastToList REM IF %LastFileVersion% GTR %~2 GOTO:_AddCurrToList :_COMPARE_KBS FOR /F "tokens=%COUNT% delims=\" %%P IN (%LastFilePath%) DO ( FOR /F "usebackq tokens=1 delims=" %%Q IN (`ECHO %%P ^| grep -G -o -- "-KB[0-9]\+-"`) DO SET KB1=%%Q ) SET KB1=%KB1:~3,-1% IF "%KB1%" == "891861" GOTO:_AddCurrToList FOR /F "usebackq tokens=%COUNT% delims=\" %%P IN ('%~3') DO ( FOR /F "usebackq tokens=1 delims=" %%Q IN (`ECHO %%P ^| grep -G -o -- "-KB[0-9]\+-"`) DO SET KB2=%%Q ) SET KB2=%KB2:~3,-1% IF "%KB2%" == "891861" GOTO:_AddLastToList IF "%KB1%" LSS "%KB2%" GOTO:_AddLastToList :_AddCurrToList ECHO "%~3">> HFFileMove.List ::@ECHO OFF GOTO:EOF :_AddLastToList ECHO %LastFilePath%>> HFFileMove.List SET LastFile=NULL CALL:_SET_LastFile %~1 %~2 "%~3" ::@ECHO OFF GOTO:EOF :_GetVERSION FOR /F "tokens=1-4 delims=." %%V IN ("%~2") DO CALL:_SetVERSION %~1 %%V %%W %%X %%Y GOTO:EOF :_SetVERSION SET VTMP=0000%~2 SET VTMP=%VTMP:~-4% SET V_1=%VTMP% SET VTMP=0000%~3 SET VTMP=%VTMP:~-4% SET V_2=%VTMP% SET VTMP=0000%~4 SET VTMP=%VTMP:~-4% SET V_3=%VTMP% SET VTMP=0000%~5 SET VTMP=%VTMP:~-4% SET V_4=%VTMP% SET VER%~1="%V_1%.%V_2%.%V_3%.%V_4%" GOTO:EOF Secondary, MvHF2.cmd @ECHO OFF CLS CD l:\_SLIPS_\HF_2K__Unpacked2\ SET MOVETO=HF_2K_ReMoved2 SET CWD="%CD%" SET COUNT=0 :_SplitPATH FOR /F "tokens=1* delims=\" %%F IN (%CWD%) DO CALL:_CheckPATH "%%~G" IF %CWD% NEQ "" GOTO:_SplitPATH FOR /F "delims=" %%F IN (HFFileMove.List) DO ( FOR /F "tokens=%COUNT%* delims=\" %%O IN (%%F) DO ( ECHO _P: ".\%%~P" FOR /F "tokens=%COUNT%* delims=\" %%S IN ("%%~dpF") DO ( MKDIR "..\%MOVETO%\%%~T" 1>NUL 2>&1 MOVE ".\%%~P" "..\%MOVETO%\%%~T" ) ) ) GOTO:EOF :_CheckPATH SET CWD="%~1"&&SET /A COUNT=%COUNT%+1&&GOTO:EOF NOTE: Uses filever.exe from SUPPORT.cab and grep.exe from UnxUtils.
  2. Well a couple issues for directx_jun2010_redist.exe under Win2K, 1) The included binaries, DXSETUP.EXE and dxdllreg.exe will not run (at all). And Compared to previous directx_mmmYYYY_redist's, the one from June is missing files: 2) BDANT.cab, BDAXP.cab, dxnt.cab It may be possible to primarily use the february redist, and add in the jun2010 cab files into a HFSLIP disk.
  3. *chuckle* Install? You don't need to install hotfixes. You slipstream them into a new CD. Or you manually unpack them. Here's how I unpack one or more Hotfixes selected in Total Commander. @ECHO OFF :BEGIN IF "%~1" == "" GOTO:EOF SET fName=%~n1 MKDIR %fName% 1>NUL 2>&1 %~1 /quiet /passive -x:%fName% SHIFT /1 GOTO:BEGIN Assigned to a button: Command: cmd /c ExtractMSHotFix.cmd Parameters: %S
×
×
  • Create New...