Другие языки программирования и технологии

Как изменить букву диска через командную строку (или пакетный файл)?

Есть желание сделать пакетный файл и закинуть его в автозапуск на флешку. Чтобы при включении флешки запускался пакетный файл и изменял букву диска флешки на конкретную (например на Y:). Таким образом моя флешка всегда на всех компах будет иметь букву Y:, при условии что буква Y: у всех свободна.
Общий алгоритм по смене буквы из cmd выглядит так:
1. запускаешь DiskPart командой
diskpart
2. выбираешь твой диск, например, если флешка определилась как диск F
select volume f
3. назначаешь новую букву
assign letter=y

Вот только как из командной строки определять, какая буква присвоена флешке, не знаю)) )
Можно, в принципе, написать программу на Delphi, которая определяет букву флешки, соответствующим образом изменяет текст пакетного файла и запускает его на выполнение. Если интересно, пиши на мыло
regulum@inbox.ru :)
Казбек Сумбембаев
Казбек Сумбембаев
191
Лучший ответ
Это что-то новенькое! О таком даже и не слышала, чтобы логическое имя можно изменить!)))
Внимательно прочти здесь: http://support.microsoft.com/kb/223188/ru
Много лет хотел это сделать, да всё руки не доходили :)
Вот мой вариант "чистого" cmd.
Запускать только с той флешки/диска, которому хотите поменять букву, желаемая буква задаётся в строчке set newdiskletter=

Создаём командный файл _SetDiskTo_.cmd со следующим содержимым:

rem Здесь указываем желаемую букву диска
set newdiskletter=O
set olddiskletter=%~D0
echo select volume %olddiskletter:~0,1% >1temp.txt
echo list volume >>1temp.txt
echo assign letter=%newdiskletter% >>1temp.txt
diskpart /s 1temp.txt

Запускаем с флешки - желаемая буква задана :)

ВНИМАНИЕ!!! Скрипт не проверяет тип диска, откуда запускается, не запускайте его с диска C и других постоянных дисков.
Sadiq Mamedov
Sadiq Mamedov
607
и к чему же могут понадобится такие глупости :) ну не суть.

@echo off
if exist y: (
echo "Letter is busy"
) else (
subst y: .
запуск нужного приложения
subst y: /d
)
Baxtiyor Tadjibayev
Baxtiyor Tadjibayev
223
Была такая же проблема, юзай mwfix
Alex Black
Alex Black
121