@echo off cd /d %~dp0 If exist .\7z.exe set ZP="%~dp07z.exe" If exist .\InfToReg.exe set IR="%~dp0InfToReg.exe" If not exist .\7z.exe If exist Y:\7z.exe set ZP="Y:\7z.exe" If not exist .\InfToReg.exe If exist Y:\Drivers\InfToReg\InfToReg.exe set IR="Y:\Drivers\InfToReg\InfToReg.exe" cls Echo. Echo. Echo Для работы индексатора необходимо подключить программный пакет 2k10. Echo Индексировать можно из любой сборки 2k10 или под обычной виндой с Echo подключенным программным пакетом (через P2Start). Можно обойтись без Echo подключения п/п 2k10, тогда в папке с индексатором необходимы файлы Echo 7z.exe и InfToReg.exe (они нужны для распаковки и индексации). Echo. Echo ======================================================================= Echo. If not defined ZP Echo Внимание!!! Архиватор 7z.exe недоступен! Echo. If not defined IR Echo Внимание!!! Индексатор InfToReg.exe недоступен! Echo. If not defined ZP pause&exit If not defined IR pause&exit set /a OS=0 set /a OS=%1 echo %OS% If %OS% EQU 0 goto:start cls If %OS% EQU 1 call:XP&exit If %OS% EQU 2 call:32&exit If %OS% EQU 3 call:64&exit If %OS% EQU 7 call:32&call:64&exit If %OS% EQU 9 call:XP&call:32&call:64&exit exit :Start cls Echo. Echo. Echo ======================================================================= Echo. Echo Выберите вариант индексирования (если командный файл запустить Echo с таким ключом, сообщение не выводится, а сразу будут проиндексированы Echo драйвера в выбранных папках). Индексные фалы будут перезаписаны в папку Echo с соответствующим драйвером (если носитель доступен для записи!). Echo. Echo 1 - индексация пакета драйверов для Windows XP (x86) в папке NT5x32 Echo 2 - индексация пакета драйверов для Windows 7 (x32) в папке NT6x32 Echo 3 - индексация пакета драйверов для Windows 7 (x64) в папке NT6x64 Echo 7 - индексация пакета драйверов для W7 (x32/64) в NT6x32/NT6x64 Echo 9 - индексация всех пакетов в папках NT5x32/NT6x32/NT6x64 Echo 0 - выход Echo. Echo ======================================================================= Echo. set /p OS= Выберите опцию (1,2,3,7,9,0): if "%OS%"=="1" cls&call:XP if "%OS%"=="2" cls&call:32 if "%OS%"=="3" cls&call:64 if "%OS%"=="7" cls&call:32&call:64 if "%OS%"=="9" cls&call:XP&call:32&call:64 if "%OS%"=="0" exit pause goto :start :XP rem Индексирование драйверпаков в папке NT5x32 if exist NT5x32 set Path=NT5x32&set Arch=x86&call:index exit /b :32 rem Индексирование драйверпаков в папке NT6x32 if exist NT6x32 set Path=NT6x32&set Arch=x86&call:index exit /b :64 rem Индексирование драйверпаков в папке NT6x64 if exist NT6x64 set Path=NT6x64&set Arch=amd64&call:index exit /b :index for /f "tokens=*" %%i in (' dir /b %Path%\*.7z ') do @call:FileName "%%i" exit /b :FileName set File=%1 for /d %%i in (%File%) do (set InFile=%%~ni) Echo. Echo ======================================================================= Echo. Echo Индексация драйверпаков из папки %Path% Echo. Echo ----------------------------------------------------------------------- Echo. Echo Производится распаковка во временную папку архива: Echo %InFile%.7z Echo. %ZP% x "%Path%\%1" -y -o"%TEMP%\%InFile%.TMP">nul||goto:error Echo ----------------------------------------------------------------------- Echo. Echo Производится индексация драйверов во временной папке: Echo %TEMP%\%InFile%.TMP Echo. %IR% scan "%TEMP%\%InFile%.TMP" "%TEMP%\%InFile%.TMP\%InFile%.txt" %Arch%© /y "%TEMP%\%InFile%.TMP\%InFile%.txt" ".\%Path%" cls rd /q /s "%TEMP%\%InFile%.TMP" exit /b :error cls Echo. Echo. Echo ======================================================================= Echo. Echo Распаковка архива завершилась с ошибкой! Echo ---------------------------------------- Echo. Echo Возможно, повреждён архив драйверов: Echo %Path%\%1 Echo. Echo или не хватает места в папке TEMP: Echo %TEMP% Echo. Echo ======================================================================= Echo. Echo Проверьте и попробуйте ещё раз. Echo. Echo ======================================================================= pause exit