Дисковая часть Если на основе номера тома или типа диска?

У меня есть 2 скрипта для создания образов новых ПК. 1, если на ПК есть компакт-диск, и один, если его нет:

С компакт-диском:

    select disk 0
    clean
    create partition primary
    select volume 1
    assign letter="C"
    format quick fs=ntfs
    active
    exit

Без компакт-диска:

select disk 0
clean
create partition primary
select volume 0
assign letter="C"
format quick fs=ntfs
active
exit

Я ищу способ объединить их в один сценарий, который в основном решит, является ли том 0 жестким диском или компакт-диском, а затем выполнит один или другой сценарий выше на основе жесткого диска YES или компакт-диска YES.

Я не уверен, лучше ли это сделать с помощью Powershell, или если оператор If может работать в сценарии Diskpart, или все это можно сделать с помощью простого пакетного файла CMD.


person Jay    schedule 29.03.2016    source источник
comment
Вас может заинтересовать команда wmic; например: wmic VOLUME GET DriveLetter,DriveType   -  person aschipfl    schedule 29.03.2016
comment
Я бы рекомендовал PowerShell. diskpart принимает входные данные из STDIN, поэтому вы можете определить сценарий diskpart как многострочную строку или массив строк и направить его в команду. Используйте Get-WmiObject для проверки наличия привода CD/DVD.   -  person Ansgar Wiechers    schedule 29.03.2016


Ответы (2)


Я не знаю, как выглядит «Сценарий Diskpart», но вы можете выбрать имя файла для вывода, изменив переменную имени сценария в верхней части этого сценария, которая будет искать «CD-ROM» в информации о вашем диске (команда wmic, например @aschipfl) и вывести один или другие блоки команд, на которые вы ссылались выше. Он также может запустить эту команду для вас в конце.

@ECHO OFF
set scriptname=yourscript.scr

REM Look for "CD-ROM" in disk information
wmic logicaldisk |findstr "CD-ROM" 1>nul
if ERRORLEVEL 1 (
REM If we did not find "CD-ROM", set volnum to 0
echo "no cd rom"
set volnum=0
) else (
REM If we found "CD-ROM", set volnum to 1
echo "has a cd rom"
set volnum=1
)

REM Write the script
 >"%scriptname%" echo.select disk 0
>>"%scriptname%" echo.clean
>>"%scriptname%" echo.create partition primary
>>"%scriptname%" echo.select volume %volnum%
>>"%scriptname%" echo.assign letter="C"
>>"%scriptname%" echo.format quick fs=ntfs
>>"%scriptname%" echo.active
>>"%scriptname%" echo.exit
REM run it by removing the 'REM' from the next line:
REM "%scriptname%"
person LinuxDisciple    schedule 29.03.2016

create partition автоматически выбирает созданный раздел и соответствующий том. Так что select volume вообще не нужен. Просто удалите его.

person user4003407    schedule 29.03.2016