Найти текущий номер тома диска в.bat
Используя скрипт.bat на USB-накопителе, я бы хотел изменить его букву без использования стороннего программного обеспечения и каких-либо требований к системе, к которой подключен USB, за исключением того, что это Windows XP или выше.
Чтобы получить текущую букву диска я использую
установить DRIVE=%~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 уже ничего не смонтировано: \
3 ответа
Разобрать список томов, который выглядит так:
Том 6 E MY_USB FAT32 Съемный 971 МБ Здоровый
Запустите в командной строке с повышенными правами или щелкните правой кнопкой мыши файл.bat и запустите от имени администратора.
for /f "tokens=2,3" %%a in ('echo list volume ^| diskpart') do (
if %%b==E echo Volume number is %%a
)
Вы также можете проверить по имени тома (используйте tokens=2,4
) или по типу тома (используйте tokens=2,6
), в случае, если имя тома содержит пробелы, потребуется небольшая хитрость с номерами токенов.
Гораздо проще, как Вы думаете :) Не документировано, но работает!
SELECT VOLUME E
Просто используйте букву тома вместо цифры...
Смотрите мой результат:
C:\Temp>diskpart
Microsoft DiskPart version 10.0.19041.964
Copyright (C) Microsoft Corporation.
On computer: DESKTOP-H6E03H5
DISKPART> select volume e
Volume 3 is the selected volume.
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 C NTFS Partition 1862 GB Healthy Boot
Volume 1 Helyreállít NTFS Partition 529 MB Healthy Hidden
Volume 2 FAT32 Partition 99 MB Healthy System
* Volume 3 E NTFS Removable 232 GB Healthy
Volume 4 D RAW Removable 232 GB Healthy
DISKPART>
Третья строка в командном файле: «set DRIVE=%DRIVER:~0,1%» должна быть: «set DRIVE =% DRIVERAW: ~ 0,1%»
С этим изменением у меня все работает.