Как правильно получить букву диска установленного виртуального жесткого диска в сценарии. Является ли это возможным?

list volume
select volume <volume_number_of_attached_VHD>
assign letter=v
exit

в этой части скрипта необходимо указать количество томов, которое может время от времени различаться.

Кроме того, если это не невозможно, у меня есть идея поместить метку в этот виртуальный том на ранней стадии, а затем на более поздней стадии определить количество томов, ищущих диск с этой меткой. Может ли эта идея быть реализована?

Благодарю.

2 ответа2

3

На всякий случай, если вам все еще интересно, я хотел бы опубликовать это где-нибудь в Интернете, так как я только что понял это и не видел, чтобы кто-то еще отвечал на этот вопрос раньше.

Это находит DVD-ROM и назначает букву v.

for /F "tokens=2" %%i in ('%comspec% /c echo list vol ^| diskpart ^| find "DVD-ROM"') do %comspec% /c echo select vol %%i ^& echo assign letter=v|diskpart

0

Просто пытаюсь понять и объяснить, что происходит в ответе гика на мой вопрос.

для ... в () делать ... это конструкция петли

Переключатель /F - это цикл по тексту, on tokens = n - Указывает, какие пронумерованные элементы следует читать из каждой строки (по умолчанию = 1). Чтобы упростить задачу: взять n-й столбец необработанной строки, разделенный разделителем (пробел символ по умолчанию)

Подробнее о /F:https://ss64.com/nt/for_f.html

% comspec% - если я не ошибаюсь, это просто имя интерпретатора командной строки - в большинстве случаев 'cmd'

Я подозреваю, что ^ | и ^ & - это вид трубопровода ... или последующее выполнение с соответствием || и && в Linux. поправь меня если я не прав ...

Извините, у вас нет окон под рукой, нет возможности проверить, но вы можете принять ответ заранее, так как другие участники считают его полезным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .