1

Я создаю пользовательский загрузочный диск для работы с Windows PE 3.0. Мне нужно знать, с какого диска была загружена система. это может быть компакт-диск или флэш-накопитель USB. В прошлом я искал файл в корне диска, который содержит некоторые из наших пользовательских настроек. однако это становится немного грязным.

В основном, помимо Windows PE, на диске или диске также есть другие сценарии и инструменты. Мне нужно перемонтировать этот USB-накопитель или DVD-диск на U:\ Drive, чтобы все было согласованно.

В принципе,

Diskpart.exe
Select Volume $X
assign Letter=U
Exit

Мне просто нужно выяснить, как определить этот мерзкий маленький $ X.

2 ответа2

3

В своих дебатах о том, принадлежит ли это здесь или StackOverflow, я нашел отличный ответ на StackOverflow (который никогда не был отмечен как ответ, но он отлично работает для меня!

Прямо сейчас я сканирую кучу букв дисков, ищу или файл конфигурации, это резко сократит код! В основном, запросите реестр в PE для HKLM\SYSTEM\CurrentControlSet\Control\PERamDiskSourceDrive

Я решил, что я отвечу на все это здесь, так что другие, исследующие Интернет, могут найти это лучше ..

Изменить: для тех, кто ищет то же самое, я добавил это в свой startnet.cmd в windows\system32 в windows PE:

REM Get Boot Drive from WinPE Registry
for /f "tokens=2,*" %%a in ('reg query HKLM\system\currentcontrolset\control /v PEBootRamDiskSourceDrive ^| find /i "PEBootRamDiskSourceDrive"') do set driveLtr=%%b 
REM Setup text file on ram drive to pass to diskpart commands
SET MountScript=X:\MountScript.TXT
ECHO SELECT VOLUME %driveLtr% > %MountSCRIPT%
ECHO assign letter=U noerr >> %MountSCRIPT%
DISKPART /S %MountSCRIPT%
REM Don't really need to cleanup, since its a ramdisk, but trying to be nice
DEL %MountSCRIPT%
0

В качестве альтернативы вы можете сделать следующее:

:: Is 'C' assigned to the boot drive?
if EXIST c:\windows\system32\startnet.cmd (
    echo select volume c > x:\reassignUSB.txt
    echo assign letter=d >> x:\reassignUSB.txt
    echo|set /p=Reassigning USB letter...& diskpart /s x:\reassignUSB.txt >nul
)

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