@echo off if not exist ListUsbDrives.exe Echo Положите ListUsbDrives.exe рядом с %0&goto:End set FILE_NAME="" Echo.Сейчас Вам будет предложено выбрать разворачиваемый образ GHO... pause chcp 1251>nul call:dialog FILE_NAME chcp 866>nul Echo.Выбран файл: %FILE_NAME%, ::: Пустое имя = CANCEL, т.е. признак ВЫХОДА if '%FILE_NAME%'=='' echo Файл %FILE_NAME% не задан! Прервано пользователем. & goto :end Echo Анализ имени диска и представление его в стандарте Ghost-а set BUKVA=%FILE_NAME:~1,3% set ghost= call:ghost_name %BUKVA% ghost set FILE_NAME=%ghost%\%FILE_NAME:~4,-1% echo.%FILE_NAME% Echo. ... Echo. ... Echo. ... Echo.Здесь идет обработка файла %FILE_NAME% ::::::::::::::::::::::::::::::::::::::::: ::: Получение ПУТИ и ИМЕНИ для СОХРАНЕНИЯ файла Echo. ... Echo. ... Echo. ... Echo.Сейчас Вам будет предложено указать место и имя сохраняемого образа pause call:dialog_save ::: Пустое имя = CANCEL, т.е. признак ВЫХОДА if '%FILE_SAVE%'=='' echo Имя файла не задано! Прервано пользователем. & goto :end Echo Анализ имени диска и представление его в стандарте Ghost-а set BUKVA=%FILE_SAVE:~1,3% set ghost= call:ghost_name %BUKVA% ghost set FILE_SAVE=%ghost%\%FILE_SAVE:~4,-1% Echo Путь и имя для сохранения echo.%FILE_SAVE% :End echo.Конец pause exit /b :dialog for /f "usebackq delims=" %%Q in (`@mshta "about:
" ^|MORE`) do set %1="%%Q"&REM exit /b :dialog_save set FILE_SAVE= echo Set objDialog = CreateObject( "SAFRCFileDlg.FileSave" )>#a.vbs echo objDialog.FileName = "">>#a.vbs echo objDialog.OpenFileSaveDlg>>#a.vbs echo WScript.Echo objDialog.FileName>>#a.vbs for /f "tokens=*" %%i in ('cscript.exe #a.vbs ^| find "\"') do set FILE_SAVE="%%i" del /q #a.vbs>nul 2>nul exit /b rem :::::::::::::::::: ::::::::::::::::: ::::::::::::::: :ghost_name setlocal EnableExtensions EnableDelayedExpansion ListUsbDrives.exe -a >#ListAllDrives.log REM ::: РАЗБИВКА #ListAllDrives.log ПО БУКВАМ Set #z#=** Set #device=-& Set #partition=- for /f "tokens=1,2 delims==" %%a in ('more +5 #ListAllDrives.log' ) do ( Set #aa=%%a Set #bb=%%b if "!#aa!"=="MountPoint " ( Set #z#=!#bb:~1,3! ) else ( if :!#z#!:==:%1: ( if "!#aa!"=="Partition Name " Set #device=!#bb:~17,2!>nul&Set #device=!#device:\=!>nul&Set /a #device=!#device!+1>nul if "!#aa!"=="Partition Number " Set /a #partition=!#bb!>nul 2>nul ) ) ) set #Choice=!#device!:!#partition! endlocal &set %2=%#Choice% exit /b