Дело в том, что diskpart
всегда будут нужны права администратора для запуска, поэтому лучше по возможности избегать этого.Более того, если вы оставите сценарий на флэш-накопителе, вы все равно не сможете изменить букву диска при его запуске, потому что на диске всегда будет открыт дескриптор, чтобы его нельзя было размонтировать.Если выполнить принудительное отключение, сценарий также прекратит работу
Другая проблема заключается в том, что вы не знаете, правильно ли пользователь ввел правильную букву диска.Что, если они введут букву жесткого диска или другой флешки?
Лучше просто оставить букву диска как есть и вместо этого подключить диск к другому диску.Вместо этого вы можете использовать subst
в пакетном файле (который может запускать любой пользователь) и подключить диск, содержащий этот пакетный файл
@echo off
cls
echo Drive Letter Change Tool
echo.
echo Please Enter The Letter You Wish To Assign
set /P "NewLetter=Please Enter The Letter You Wish To Assign: "
if "%NewLetter:~1%"=="" if not exist %NewLetter% subst %NewLetter% %~d0
if "%NewLetter:~1%"==""
, чтобы проверить,пользователь вводит только букву вместо более длинной строки, тогда эта буква диска будет проверена, если используется
Если вы поместите командный файл в корень флэш-диска, вы можете просто использовать subst %NewLetter% .
вместо %~d0