maslinaV
30-04-2013, 13:33
Столкнулся вот с такой проблемой , взял с сайта пример для создания файла, который автоматизирует создание образа
У меня Windows 7 x64 максимальная
@echo off
:: Данные, которые необходимо ввести перед запуском файла
:: Укажите папку с установочными файлами Windows 7
:: По умолчанию указана папка C:\7Work\DVD
SET source=C:\7Work\DVD
:: Укажите папку для сохранения ISO-образа
:: По умолчанию указана папка C:\7Work\ISO
SET target=C:\7Work\ISO
:: Укажите разрядность создаваемого дистрибутива
:: Задайте 32 или 64
:: По умолчанию создается образ 32-разрядной ОС
SET version=32
:: Проверка на предмет наличия установленного WAIK
:: и задание переменной %WAIK%
IF EXIST "%Programfiles%\Windows AIK\Tools\Servicing\pkgmgr.exe" SET WAIK=%Programfiles%\Windows AIK
IF NOT EXIST "%Programfiles%\Windows AIK\Tools\Servicing\pkgmgr.exe" GOTO :NOWAIK
:CreateISO
:: Задание пути к файлу загрузчика
:: 32-разрядная версия
IF %version%==32 SET bootloader=%WAIK%\Tools\PETools\x86\boot\etfsboot.com
:: 64-разрядная версия
IF %version%==64 SET bootloader=%WAIK%\Tools\PETools\amd64\boot\etfsboot.com
:: Создание ISO-образа
"%WAIK%"\Tools\%PROCESSOR_ARCHITECTURE%\oscdimg.exe -n -m -b"%bootloader%" "%source%" "%target%\7%version%.iso"
GOTO :Finish
:NOWAIK
SET WAIK=
ECHO WAIK не найден!
ECHO Укажите путь к папке с WAIK.
ECHO Например, введите E:\Software\Windows AIK
SET /P WAIK= Путь к WAIK:
CALL :CreateISO
:Finish
ECHO.
ECHO Создание ISO-образа завершено!
pause
exit
Долго не мог понять почему он не отрабатывается , но затем увидел, что вместо переменной %PROCESSOR_ARCHITECTURE% подставляется - x86 , а вместо %Programfiles% - Program Files (x86) , заменил так .
Вместо %PROCESSOR_ARCHITECTURE% указал amd64 , вместо %Programfiles% указал %ProgramW6432%.
Значения переменных среды проверял, все должно было отработать и на старых значениях.
Вот мой вариант.
Я использовал аргумент, поэтому для того чтобы запустить файл, нажимаем клавиши win+R вводим в строку cmd откроется окно командного интерпретатора с правами администратора , переходим в каталог где находится данный командный файл, вводим имя_файла.cmd x64 или имя_файла.cmd x32 в зависимости от архитектуры Windows.
:: Командный файл для создания ISO-образа Windows 7
:: Данные, которые необходимо ввести перед запуском файла
:: Укажите папку с установочными файлами Windows 7
:: По умолчанию указана папка h:\Win7\windows7x64\DVD
SET source=h:\Win7\windows7x64\DVD
:: Укажите папку для сохранения ISO-образа
:: По умолчанию указана папка h:\Win7\windows7x64\ISO
SET target=h:\Win7\windows7x64\ISO
:: Укажите разрядность создаваемого дистрибутива
:: Задайте 32 или 64
:: По умолчанию создается образ 32-разрядной ОС
SET version=%1
:: Проверка на предмет наличия установленного WAIK
:: и задание переменной %WAIK%
IF EXIST "%ProgramW6432%\Windows AIK\Tools\Servicing\pkgmgr.exe" SET WAIK=%ProgramW6432%\Windows AIK
IF NOT EXIST "%ProgramW6432%\Windows AIK\Tools\Servicing\pkgmgr.exe" GOTO :NOWAIK
:CreateISO
:: Задание пути к файлу загрузчика
:: 32-разрядная версия
IF %version%==x32 SET bootloader=%WAIK%\Tools\PETools\x86\boot\etfsboot.com
:: 64-разрядная версия
IF %version%==x64 SET bootloader=%WAIK%\Tools\PETools\amd64\boot\etfsboot.com
:: Создание ISO-образа
"%WAIK%"\Tools\amd64\oscdimg.exe -n -m -b"%bootloader%" "%source%" "%target%\Win7%version%.iso"
GOTO :Finish
:NOWAIK
SET WAIK=
ECHO WAIK не найден!
ECHO Укажите путь к папке с WAIK.
ECHO Например, введите E:\Software\Windows AIK
SET /P WAIK= Путь к WAIK:
CALL :CreateISO
:Finish
ECHO.
ECHO Создание ISO-образа завершено!
pause
exit
У меня Windows 7 x64 максимальная
@echo off
:: Данные, которые необходимо ввести перед запуском файла
:: Укажите папку с установочными файлами Windows 7
:: По умолчанию указана папка C:\7Work\DVD
SET source=C:\7Work\DVD
:: Укажите папку для сохранения ISO-образа
:: По умолчанию указана папка C:\7Work\ISO
SET target=C:\7Work\ISO
:: Укажите разрядность создаваемого дистрибутива
:: Задайте 32 или 64
:: По умолчанию создается образ 32-разрядной ОС
SET version=32
:: Проверка на предмет наличия установленного WAIK
:: и задание переменной %WAIK%
IF EXIST "%Programfiles%\Windows AIK\Tools\Servicing\pkgmgr.exe" SET WAIK=%Programfiles%\Windows AIK
IF NOT EXIST "%Programfiles%\Windows AIK\Tools\Servicing\pkgmgr.exe" GOTO :NOWAIK
:CreateISO
:: Задание пути к файлу загрузчика
:: 32-разрядная версия
IF %version%==32 SET bootloader=%WAIK%\Tools\PETools\x86\boot\etfsboot.com
:: 64-разрядная версия
IF %version%==64 SET bootloader=%WAIK%\Tools\PETools\amd64\boot\etfsboot.com
:: Создание ISO-образа
"%WAIK%"\Tools\%PROCESSOR_ARCHITECTURE%\oscdimg.exe -n -m -b"%bootloader%" "%source%" "%target%\7%version%.iso"
GOTO :Finish
:NOWAIK
SET WAIK=
ECHO WAIK не найден!
ECHO Укажите путь к папке с WAIK.
ECHO Например, введите E:\Software\Windows AIK
SET /P WAIK= Путь к WAIK:
CALL :CreateISO
:Finish
ECHO.
ECHO Создание ISO-образа завершено!
pause
exit
Долго не мог понять почему он не отрабатывается , но затем увидел, что вместо переменной %PROCESSOR_ARCHITECTURE% подставляется - x86 , а вместо %Programfiles% - Program Files (x86) , заменил так .
Вместо %PROCESSOR_ARCHITECTURE% указал amd64 , вместо %Programfiles% указал %ProgramW6432%.
Значения переменных среды проверял, все должно было отработать и на старых значениях.
Вот мой вариант.
Я использовал аргумент, поэтому для того чтобы запустить файл, нажимаем клавиши win+R вводим в строку cmd откроется окно командного интерпретатора с правами администратора , переходим в каталог где находится данный командный файл, вводим имя_файла.cmd x64 или имя_файла.cmd x32 в зависимости от архитектуры Windows.
:: Командный файл для создания ISO-образа Windows 7
:: Данные, которые необходимо ввести перед запуском файла
:: Укажите папку с установочными файлами Windows 7
:: По умолчанию указана папка h:\Win7\windows7x64\DVD
SET source=h:\Win7\windows7x64\DVD
:: Укажите папку для сохранения ISO-образа
:: По умолчанию указана папка h:\Win7\windows7x64\ISO
SET target=h:\Win7\windows7x64\ISO
:: Укажите разрядность создаваемого дистрибутива
:: Задайте 32 или 64
:: По умолчанию создается образ 32-разрядной ОС
SET version=%1
:: Проверка на предмет наличия установленного WAIK
:: и задание переменной %WAIK%
IF EXIST "%ProgramW6432%\Windows AIK\Tools\Servicing\pkgmgr.exe" SET WAIK=%ProgramW6432%\Windows AIK
IF NOT EXIST "%ProgramW6432%\Windows AIK\Tools\Servicing\pkgmgr.exe" GOTO :NOWAIK
:CreateISO
:: Задание пути к файлу загрузчика
:: 32-разрядная версия
IF %version%==x32 SET bootloader=%WAIK%\Tools\PETools\x86\boot\etfsboot.com
:: 64-разрядная версия
IF %version%==x64 SET bootloader=%WAIK%\Tools\PETools\amd64\boot\etfsboot.com
:: Создание ISO-образа
"%WAIK%"\Tools\amd64\oscdimg.exe -n -m -b"%bootloader%" "%source%" "%target%\Win7%version%.iso"
GOTO :Finish
:NOWAIK
SET WAIK=
ECHO WAIK не найден!
ECHO Укажите путь к папке с WAIK.
ECHO Например, введите E:\Software\Windows AIK
SET /P WAIK= Путь к WAIK:
CALL :CreateISO
:Finish
ECHO.
ECHO Создание ISO-образа завершено!
pause
exit