@echo off&set FileName=%~n0&shift :: ============================================= :: AutoHelp PlugLab Concept: 2006 by Reatogo :: ============================================= :: Help Info: :: ======================= set Routine_Type=4 :: 1=Getting Data 2=Prompts 3=Getting Files 4=Creating Files 5=General set Routine_Vers=1 set Routine_Date=2007-04-20 set RoutineName=ConsolidateUpperFilters set RoutineAuthor=Siegfried set Using_work_from= set Example_call_1=%%ConsolidateUpperFilters%% set Example_call_2= set Example_call_3= set text_01=Scans the entire setup and consolidates all UpperFilter entries. set text_02=. set text_03=Creates or updates a "z_UpperFilters" plugin. if "%~1" == "GetHelp" goto :EOF :: ============================================= echo.&echo %* %Msg% "Scan the setup for active UpperFilters settings..." if exist "%Plugin%\z_UpperFilters\UpperFilters.inf" ( copy "%Plugin%\z_UpperFilters\UpperFilters.inf" "%Plugin%\z_UpperFilters\UpperFilters.inf.txt" > NUL del "%Plugin%\z_UpperFilters\UpperFilters.inf" ) if not exist "%Plugin%\z_UpperFilters" md "%Plugin%\z_UpperFilters" if exist "%temp%\FilterTemp" rd "%temp%\FilterTemp" /s /q set PEbuilder_INF=PEbuilder.inf if exist %PEroot%\ReatogoBuilder.inf set PEbuilder_INF=ReatogoBuilder.inf if exist %PEroot%\UBCD4WinBuilder.inf set PEbuilder_INF=UBCD4WinBuilder.inf SETLOCAL ENABLEDELAYEDEXPANSION call :SCAN_SETUP "UpperFilters" "ControlSet001\Control\Class" ENDLOCAL echo.>> "%Plugin%\z_UpperFilters\UpperFilters.inf" echo.>> "%Plugin%\z_UpperFilters\UpperFilters.inf" echo ; Backup entry for the "ResoreUpperFilters" function of 1x1-PeFuncs-Scripts (Program starter) >> "%Plugin%\z_UpperFilters\UpperFilters.inf" echo [Software.AddReg]>> "%Plugin%\z_UpperFilters\UpperFilters.inf" for /f "tokens=1-4* delims=\" %%a in (%temp%\FilterTemp\FilterBackup.txt) do echo 0x7,"PlugLab\BackUp_UpperFilters\%%d">> "%Plugin%\z_UpperFilters\UpperFilters.inf" if exist "%temp%\FilterTemp" rd "%temp%\FilterTemp" /s /q if exist "%Plugin%\z_UpperFilters\UpperFilters.inf" if exist "%Plugin%\z_UpperFilters\UpperFilters.inf.txt" del "%Plugin%\z_UpperFilters\UpperFilters.inf.txt" > NUL goto :EOF :: ================================================= :SCAN_SETUP :: ======================== if not exist "%temp%\FilterTemp" md "%temp%\FilterTemp" findstr /I /S "%~1" "%PEroot%\%PEbuilder_INF%">> "%temp%\FilterTemp\FilterList.txt" findstr /I /S "%~1" "%PEroot%\OEM1\*.inf">> "%temp%\FilterTemp\FilterList.txt" findstr /I /S "%~1" "%PEroot%\Plugin\*.inf">> "%temp%\FilterTemp\FilterList.txt" for /f "tokens=1-3 delims=:" %%a in (%temp%\FilterTemp\FilterList.txt) do ( set IniPath=%%a:%%b set IniPathShort=!IniPath:%PEroot%\=! if not "!IniPath!" == "!IniPath_old!" ( %IniGet% "%%a:%%b" "PEBuilder" "Enable" "s" echo "!result!" !IniPathShort! ) if "!result!" == "1" echo %%c>> "%temp%\FilterTemp\FilterList2.txt" set IniPath_old=!IniPath! ) %Msg% "Extract active UpperFilters settings..." findstr /V /B ";" "%temp%\FilterTemp\FilterList2.txt">> "%temp%\FilterTemp\FilterList3.txt" for /f "tokens=*" %%a in (%temp%\FilterTemp\FilterList3.txt) do ( set DATA=%%a set DATA=!DATA: =! set DATA=!DATA: =! set DATA=!DATA:"=! echo !DATA!>> %temp%\FilterTemp\FilterList4.txt for /f "tokens=1-2 delims={" %%i in ("!DATA!") do if not "%%j" == "" echo Found: {%%j ) for /f "tokens=1-2 delims={" %%a in (%temp%\FilterTemp\FilterList4.txt) do ( if "%%a" == "0x7,ControlSet001\Control\Class\" echo %%b>> "%temp%\FilterTemp\FilterList5.txt" ) for /f "tokens=1-2 delims=}" %%a in (%temp%\FilterTemp\FilterList5.txt) do echo %%a>> "%temp%\FilterTemp\FilterList6.txt" sort < %temp%\FilterTemp\FilterList6.txt > "%temp%\FilterTemp\FilterList7.txt" call :UPPER_FILTERS_INF_HEAD %Msg% "Consolidate into the z_UpperFilters plugin ..." echo [SetupReg.AddReg] for /f "tokens=*" %%a in (%temp%\FilterTemp\FilterList7.txt) do ( set NewKey=%%a if not "!NewKey!" == "!oldKEY!" call :PROCESS_KEY "!NewKey!" "%~1" set oldKEY=!NewKey! ) goto :EOF :: ======================== :PROCESS_KEY :: ======================== set ClassKey=%~1 set %~1_Entry=0x7,"ControlSet001\Control\Class\{%~1}","%~2" findstr /I "%~1" "%temp%\FilterTemp\FilterList4.txt">> "%temp%\FilterTemp\%~1.txt" for /f "tokens=*" %%a in (%temp%\FilterTemp\%~1.txt) do ( set DATA=%%a echo !DATA:0x7,ControlSet001\Control\Class\{%~1},%~2,=!>> %temp%\FilterTemp\%~1a.txt ) for /f "tokens=1-4 delims=," %%a in (%temp%\FilterTemp\%~1a.txt) do ( if not "%%a" == "" echo %%a>> %temp%\FilterTemp\%~1b.txt if not "%%b" == "" echo %%b>> %temp%\FilterTemp\%~1b.txt if not "%%c" == "" echo %%c>> %temp%\FilterTemp\%~1b.txt if not "%%d" == "" echo %%d>> %temp%\FilterTemp\%~1b.txt ) sort < %temp%\FilterTemp\%~1b.txt > %temp%\FilterTemp\%~1c.txt set Filter= for /f "tokens=*" %%a in (%temp%\FilterTemp\%~1c.txt) do ( set Filter=%%a if not "!oldFilter!" == "!Filter!" set %~1_Entry=!%~1_Entry!,"!Filter!" set oldFilter=!Filter! ) set oldFilter= call :UPPER_FILTERS_INF_LINE "!%~1_Entry!" goto :EOF :: ======================== :UPPER_FILTERS_INF_HEAD :: ======================== set FILE="%Plugin%\z_UpperFilters\UpperFilters.inf" echo [Version]> %FILE% echo Signature= "$Windows NT$">> %FILE% echo [PEBuilder]>> %FILE% if exist "%Plugin%\z_UpperFilters\AutoHelp.cmd" ( echo Name="All Basics: Consolidated UpperFilters ">> %FILE% echo Config=AutoHelp.cmd >> %FILE% ) else ( echo Name="All Basics: Consolidated UpperFilters -to be processed last-">> %FILE% ) echo Enable=1 >> %FILE% echo Help="HELP.htm">> %FILE% echo [SetupReg.AddReg]>> %FILE% goto :EOF :: ======================== :UPPER_FILTERS_INF_LINE :: ======================== echo %~1>> %FILE% echo %~1 set DATA=%~1 echo !DATA:~0,-1!>> "%temp%\FilterTemp\FilterBackup.txt" set DATA= goto :EOF :: ========================