Используя сценарий .bat на USB-накопителе, я хотел бы изменить букву диска без использования стороннего программного обеспечения и каких-либо требований к системе, к которой подключен USB, за исключением того, что это Windows XP или выше.
Чтобы получить текущую букву диска, я использую
установить ПРИВОД=%~dp0
Что такое E: например
Прежде чем я смогу изменить букву диска E:, как мне автоматически узнать номер тома в списке томов diskpart?
выберите том E:
очевидно, что это не сработает, вы можете использовать только n для номера диска.
РЕДАКТИРОВАТЬ:
Спасибо @wOxxOm за решение. Вот мой последний скрипт .bat, который я сейчас использую для автоматического изменения буквы диска, на котором находится скрипт, на U:\
@echo off
set DRIVERAW=%~dp0
set DRIVE=%DRIVER:~0,1%
if %DRIVE%==U exit
for /f "tokens=2,3" %%a in ('echo list volume ^| diskpart') do (
if %%b==%DRIVE% set VOLNO=%%a
)
del %DRIVERAW%\diskpart.txt
echo select volume %VOLNO% > %DRIVERAW%\diskpart.txt
echo assign letter=U >> %DRIVERAW%\diskpart.txt
echo ^G
diskpart /s %DRIVERAW%\diskpart.txt
exit
Вы можете заменить две буквы U на любую другую букву диска, которую хотите, если она не должна быть подключена к U:\
Просто будьте уверены, что на U:\ еще ничего не смонтировано.
echo list volume | diskpart
в файле bat и в cmd вручную, но все, что он делает, это открывает diskpart. я не знаком с синтаксическим анализом выходных данных с использованием for /f, хотя я много использовал cmd раньше:/ - person RapidFireArts   schedule 25.08.2015