Показать полную графическую версию : Батник для работы с VHD
streamrider
12-03-2012, 21:54
Всем привет !!! Сегодня изучил метод создания vhd диска через CMD т.е Diskpart так вот как я понял писать все это постоянно не очень хорошо и хочу сделать батник для создания а вот оно не получается. вроде все правильно но не работает. Вот что пишу в bat файлик
DISKPART
CREATE VDISK FILE=C:\VHD\test.vhd MAXIMUM=25000
SELECT VDISK FILE=C:\VHD\test.vhd
ATTACH VDISK
FORMAT FS=NTFS QUICK
ASSIGN LETTER=V
EXIT
Как сделать его рабочим ? Или может вообще нельзя в bat это сделать ?
Morpheus
12-03-2012, 22:16
streamrider, используйте diskpart -s "C:\VHD\script.s"
в script.s:
CREATE VDISK FILE=C:\VHD\test.vhd MAXIMUM=25000
SELECT VDISK FILE=C:\VHD\test.vhd
ATTACH VDISK
FORMAT FS=NTFS QUICK
ASSIGN LETTER=V
EXIT »
У вас там ещё пропущена команда создания раздела. После attach будет cre par pri.
Foreigner
12-03-2012, 22:31
Как сделать его рабочим ? Или может вообще нельзя в bat это сделать ? »
Не проверял, но скорее всего можно без дополнительных файлов, это может быть актуально если батник на ro-носителе (на CD, например):
@echo off
(
есно CREATE VDISK FILE=C:\VHD\test.vhd MAXIMUM=25000
есно SELECT VDISK FILE=C:\VHD\test.vhd
есно ATTACH VDISK
есно FORMAT FS=NTFS QUICK
есно ASSIGN LETTER=V
есно EXIT
) | diskpart
Т.е. все команды diskpart прописаны в батнике. Эта конструкция применима и к некоторым другим программам, которые могут выполнять сценарий, например ftp.exe
Morpheus
12-03-2012, 22:51
Ессно не есно »
а echo, но да, тоже работает :)
streamrider
12-03-2012, 22:51
Эта конструкция » не работает
DesmondTruman
13-03-2012, 01:45
Foreigner А скобки там обязательны? В двух словах, для чего они в основном нужны?
не работает »
А так:
@Echo off
Title Creating Virtual Disk (VHD) v5& Cls
setlocal enabledelayedexpansion
CD /D %~dp0
:: Название будущего VHD файла и путь к нему
set vhd="D:\Win7-1.vhd"
:: Размер VHD файла
set mb=25000
:: Задание бувы виртуальному диску
set installdisk=Y:
:: Формирование файла сценария для diskpart
:: ------------------------------------------------------------------
If Exist "%~dp0scene.ini" Del "%~dp0scene.ini"
Echo create vdisk file=%vhd% maximum=%mb% type=fixed >> scene.ini
Echo select vdisk file=%vhd% >> scene.ini
Echo attach vdisk >> scene.ini
Echo online disk noerr >> scene.ini
Echo attributes disk clear readonly noerr >> scene.ini
Echo create partition primary >> scene.ini
Echo online volume noerr >> scene.ini
Echo attributes volume clear readonly noerr >> scene.ini
Echo active >> scene.ini
Echo format quick fs=ntfs label="Win7 VHD" >> scene.ini
Echo assign letter=%installdisk% >> scene.ini
diskpart /s "%~dp0%scene.ini"
timeout /t 2 > Nul
Del "%~dp0scene.ini"
label="Win7 VHD" это соответственно лейбл (название) виртуального диска.
Кусок взят из рабочего, но пока еще сырого бат-файла по полному созданию VHD файла.
В двух словах, для чего они в основном нужны? »
В приведённом случае (http://forum.oszone.net/post-1877970.html#post1877970) — сгруппировать вывод воедино.
Foreigner
13-03-2012, 07:16
не работает »
Специально проверил, у меня работает, запущено в админской консоли:
@echo off
(
echo create vdisk file="d:\test.vhd" maximum=10000
echo attach vdisk
echo create partition primary
echo assign letter=x
echo format
) | diskpart
streamrider
13-03-2012, 08:13
А так:
Код:
@Echo off
Title Creating Virtual Disk (VHD) v5& Cls
setlocal enabledelayedexpansion
CD /D %~dp0
:: Название будущего VHD файла
set vhd=Win7-1.vhd
:: Размер VHD файла
set mb=25000
:: Задание бувы виртуальному диску
set installdisk=Y:
:: Формирование файла сценария для diskpart
:: ------------------------------------------------------------------
If Exist "%~dp0scene.ini" Del "%~dp0scene.ini"
Echo create vdisk file=%vhd% maximum=%mb% type=fixed >> scene.ini
Echo select vdisk file=%vhd% >> scene.ini
Echo attach vdisk >> scene.ini
Echo online disk noerr >> scene.ini
Echo attributes disk clear readonly noerr >> scene.ini
Echo create partition primary >> scene.ini
Echo online volume noerr >> scene.ini
Echo attributes volume clear readonly noerr >> scene.ini
Echo active >> scene.ini
Echo format quick fs=ntfs label="Win7 VHD" >> scene.ini
Echo assign letter=%installdisk% >> scene.ini
diskpart /s "%~dp0%scene.ini"
timeout /t 2 > Nul
Del "%~dp0scene.ini"
label="Win7 VHD" это соответственно лейбл (название) виртуального диска.
Кусок взят из рабочего, но пока еще сырого бат-файла по полному созданию VHD файла. »
А так пишет вот это:
http://s42.radikal.ru/i098/1203/46/fcb632bfaa2c.jpg (http://www.radikal.ru)
Наверное ошибка где то здесь CD /D %~dp0
Foreigner, ваш код работает спасибо ))) Просто там приходиться самому создавать сценарии
Наверное ошибка где то здесь CD /D %~dp0 »
нет, ошибка здесь
set vhd=Win7-1.vhd
посмотрите как у Foreigner написано
vdisk file="d:\test.vhd"
streamrider
13-03-2012, 08:54
Morpheus, пока что ваш код единственный который у меня заработал
ferget, но ведь это CD /D %~dp0 как я понял относительный путь а set vhd=Win7-1.vhd » это название файла диска
нет CD /D %~dp0 это путь к bat-файлу, он указывает, что папка с bat-файлом станет рабочей папкой и scene.ini будет в ней создан
streamrider
13-03-2012, 09:04
ferget, ок спасибо. позже попробую заменить путь потом отпишусь
А так пишет вот это: »
Извиняюсь, лопухнулся. Код на предыдущей странице исправил.
В - set vhd=Win7-1.vhd
нужно указать не только имя VHD файла, но и место (путь) где он будет расположен.
Например
set vhd="D:\Win7-1.vhd"
или
set vhd="D:\VHD\Win7-1.vhd"
Как Вам удобней.
http://s019.radikal.ru/i608/1203/c0/4478dd5160act.jpg (http://radikal.ru/F/s019.radikal.ru/i608/1203/c0/4478dd5160ac.png.html)
В результате работы скрипта на диске D: создан файл Win7-1.vhd и виртуальный дис, которому присвоена буква Y:
Не совсем по теме, но по созданию образов VHD
возможно Вас заинтерисует программа WinNTSetup v2.1 (http://www.msfn.org/board/topic/149612-winntsetup-v21/)
имеет графический интерфейс, но может управляться из командной строки, все команды приведены на первой странице ветки форума. Язык Английский.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.