Войти

Показать полную графическую версию : Батник для работы с 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 А скобки там обязательны? В двух словах, для чего они в основном нужны?

dorosa
13-03-2012, 03:10
не работает »
А так:
@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 файла.

Iska
13-03-2012, 07:12
В двух словах, для чего они в основном нужны? »
В приведённом случае (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, ваш код работает спасибо ))) Просто там приходиться самому создавать сценарии

ferget
13-03-2012, 08:47
Наверное ошибка где то здесь 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 » это название файла диска

ferget
13-03-2012, 09:02
нет CD /D %~dp0 это путь к bat-файлу, он указывает, что папка с bat-файлом станет рабочей папкой и scene.ini будет в ней создан

streamrider
13-03-2012, 09:04
ferget, ок спасибо. позже попробую заменить путь потом отпишусь

dorosa
13-03-2012, 09:21
А так пишет вот это: »
Извиняюсь, лопухнулся. Код на предыдущей странице исправил.
В - 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