Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Батник для работы с VHD (http://forum.oszone.net/showthread.php?t=230164)

streamrider 12-03-2012 21:54 1877944

Батник для работы с VHD
 
Всем привет !!! Сегодня изучил метод создания 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 1877963

streamrider, используйте
Код:

diskpart -s "C:\VHD\script.s"
в script.s:
Цитата:

Цитата streamrider
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 1877970

Цитата:

Цитата streamrider
Как сделать его рабочим ? Или может вообще нельзя в 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 1877981

Ессно не
Цитата:

Цитата Foreigner
есно »

а echo, но да, тоже работает :)

streamrider 12-03-2012 22:51 1877982

Цитата:

Цитата Foreigner
Эта конструкция »

не работает

DesmondTruman 13-03-2012 01:45 1878038

Foreigner А скобки там обязательны? В двух словах, для чего они в основном нужны?

dorosa 13-03-2012 03:10 1878056

Цитата:

Цитата streamrider
не работает »

А так:
Код:

@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 1878078

Цитата:

Цитата DesmondTruman
В двух словах, для чего они в основном нужны? »

В приведённом случае — сгруппировать вывод воедино.

Foreigner 13-03-2012 07:16 1878080

Цитата:

Цитата streamrider
не работает »

Специально проверил, у меня работает, запущено в админской консоли:
Код:

@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 1878096

Цитата:

Цитата dorosa
А так:
Код:
@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 файла. »

А так пишет вот это:



Наверное ошибка где то здесь CD /D %~dp0

Foreigner, ваш код работает спасибо ))) Просто там приходиться самому создавать сценарии

ferget 13-03-2012 08:47 1878110

Цитата:

Цитата streamrider
Наверное ошибка где то здесь CD /D %~dp0 »

нет, ошибка здесь
Код:

set vhd=Win7-1.vhd
посмотрите как у Foreigner написано

Код:

vdisk file="d:\test.vhd"

streamrider 13-03-2012 08:54 1878114

Morpheus, пока что ваш код единственный который у меня заработал

ferget, но ведь это CD /D %~dp0 как я понял относительный путь а
Цитата:

Цитата ferget
set vhd=Win7-1.vhd »

это название файла диска

ferget 13-03-2012 09:02 1878119

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

streamrider 13-03-2012 09:04 1878121

ferget, ок спасибо. позже попробую заменить путь потом отпишусь

dorosa 13-03-2012 09:21 1878135

Цитата:

Цитата streamrider
А так пишет вот это: »

Извиняюсь, лопухнулся. Код на предыдущей странице исправил.
В - set vhd=Win7-1.vhd
нужно указать не только имя VHD файла, но и место (путь) где он будет расположен.
Например
Код:

set vhd="D:\Win7-1.vhd"
или
Код:

set vhd="D:\VHD\Win7-1.vhd"
Как Вам удобней.



В результате работы скрипта на диске D: создан файл Win7-1.vhd и виртуальный дис, которому присвоена буква Y:

Не совсем по теме, но по созданию образов VHD
возможно Вас заинтерисует программа WinNTSetup v2.1
имеет графический интерфейс, но может управляться из командной строки, все команды приведены на первой странице ветки форума. Язык Английский.


Время: 19:51.

Время: 19:51.
© OSzone.net 2001-