1

Тема: WSH: Изменить букву диска

Всем доброго дня.

Подскажите, возможно ли скриптом изменить букву диска? Конкретно интересует буква вставленной флешки. В windows это возможно сделать, [пуск]->[панель управления]->[администрирование]->[управление компьютером]->[управление дисками]->[контекстное меню "изменение буквы диска или пути"]

Нас невозможно сбить с пути, нам пофигу куда идти.

2

Re: WSH: Изменить букву диска

Самое простое — вызывать из скрипта «mountvol.exe».

3

Re: WSH: Изменить букву диска

DnsIs пишет:

Всем доброго дня.

Подскажите, возможно ли скриптом изменить букву диска? Конкретно интересует буква вставленной флешки.
...

Если цель скрипта не именно _изменить_ букву флешки, а к примеру, дать возможность работать с флешкой другому приложению по некой жестко определенной букве привода, то можно рассмотреть вариант присвоения флешке еще одной требуемой нам буквы - досовой командой "SUBST" .
К примеру, флешка получает имя то "H", то "I", то "J", а у нас есть ПО, которое работает, например, с "M:", то батник будет приблизительно такой:


::: удаляем возможные предыдущие назначения на букву M:"
subst m: /d
::: пробуем создать виртуальный привод
subst m: h:\
subst m: i:\
subst m: j:\

::: возможно есть смысл в выполнении проверки наличия привода (здесь надо поэксперементировать)
::: либо делать проверки значения errorlevel после каждой команды subst
@IF EXIST M:\*.* @Echo _Диск_М_подключен_

@Echo.
@Pause
WBR. Roman

4

Re: WSH: Изменить букву диска

Rom5, спс, но нашел то чего хотел.
В винде есть утилита Diskpart

Еще не пробовал, но должна помочь.

Нас невозможно сбить с пути, нам пофигу куда идти.

5

Re: WSH: Изменить букву диска

Возможно мой вопрос по теме. Иногда мне приходится подключать несколько внешних дисков, при чем один из них используется как основное устройство хранения, на имя которого завязаны некоторые приложения. Случается, что подключении дисков, имя (буква диска) меняется. Приходится менять букву так как описал DnsIs в своем первом сообщении. Есть средства, которые жестко закрепили бы конкретную букву за конкретным диском?

( 2 * b ) || ! ( 2 * b )

6

Re: WSH: Изменить букву диска

DnsIs пишет:

В винде есть утилита Diskpart

Можно и так. Используется тот же принцип монтирования.

7

Re: WSH: Изменить букву диска

Rumata пишет:

Возможно мой вопрос по теме. Иногда мне приходится подключать несколько внешних дисков, при чем один из них используется как основное устройство хранения, на имя которого завязаны некоторые приложения. Случается, что подключении дисков, имя (буква диска) меняется. Приходится менять букву так как описал DnsIs в своем первом сообщении. Есть средства, которые жестко закрепили бы конкретную букву за конкретным диском?

Есть программа, USB safely remove, использую ее на работе. Вроде бы как она позволяет такое, хотя не уверен, завтра посмотрю, если не забуду. На работе почему то флешки никогда не сбиваются. А вот дома постоянно. Прога платная, но как то на хабре раздавали бесплатные ключи, я успел ухватить.

Отпишусь.

Нас невозможно сбить с пути, нам пофигу куда идти.

8

Re: WSH: Изменить букву диска

...Есть программа, USB safely remove, использую ее на работе. Вроде бы как она позволяет такое......

Наврал. Не умеет она. 8(

Нас невозможно сбить с пути, нам пофигу куда идти.

9 (изменено: DnsIs, 2011-12-16 16:31:09)

Re: WSH: Изменить букву диска

И снова я соврал. 8)

Еще раз проштудировал справку программы USB safely remove. Вот что она предлагает (цитата из справки):

Если у Вас несколько внешних носителей, то система может назначать каждый раз разные буквы на один и тот-же носитель. Это может быть очень неудобно, особенно, если у Вас настроено программное обеспечения для бэкапа. В таком случае очень удобно подключить внешние носители как папки фиксированного NTFS диска, а букву диска для таких носителей отключить. Например, Вы можете подключить все Ваши внешние накопители в папку диска C: - C:\Externals. Из рисунка ниже Вы можете увидеть преимущества, которые это дает. А именно, все Ваши внешние диски имеют понятные фиксированные названия, а также видно, какие из дисков подключены в данный момент ("Backup Drive", "JetFlash 1 GB"), а какие отключены.

Как себя покажет дальше, удобно ли будет, пока сказать не могу. Тестю.
Но платить само собой никто не хочет. 8) Потому что лень ведь, да? И ломать чужой софт тоже некрасиво.

alexii говорил, про mountvol. Читал интернеты про mountvol: если ее запустить, то она выводит имена томов всех присоединенных дисков. Про мою флешку утилита пишет вот что:

\\?\Volume{c7192be2-4a1d-11e0-8415-cb12d26067fd}\
        L:\

Кто подскажет \\?\Volume{c7192be2-4a1d-11e0-8415-cb12d26067fd}\ - это уникальное значение для флешки? Постоянное ли? Если постоянное, то на всех компьютерах ли? Я в этом не силен.

Если даже не заморачиваться, постоянное ли это значение, как вариант:

1. На флешке создаем батник:

for /f %%i in ('mountvol %~d0 /l') do set name=%%i
mountvol c:/flash %name%

После подключения флешки. Просто запускаем батник, и все содержимое флешки ищем в папке (в моем примере) c:\flash
Минусы которые я увидел. 1. Если делать так на чужом компе, то после извлечения флешки, будет валяться ненужная папка.
Зато если использовать такую фичу только на своих компьютерах. Мне видится отличная перспектива.
2-1 минус возникает только при полном переходе на подключение к папке, и отказе от буквы (ну мож она вам глаза мозолит). Если вы работали работу работником на работе и кто-то из домашних удалил вашу папку или записал в нее что-то, то флешка вообще потом не определится. Придется лезть в консоль.

2. Такой батник

c:
cd \windows\temp
for /f %%i in ('mountvol %~d0 /l') do set name=%%i
echo mountvol %~d0 /d > changeLetter.cmd
echo mountvol Z:\ %name% >> changeLetter.cmd
changeLetter.cmd
del changeLetter.cmd

Минус в том, что буква (в данном случае) Z: может в системе уже существовать.
Сделал через папку Temp потому как: 1. Сразу 2 буквы на флешку не получается завязать, система ругается. 2. Если сначала удалить букву, то батник затыкается, потому как флешка исчезла.

Что еще интересно. Утилита плевать хотела на то, работаете ли вы с флешкой в данный момент или нет. Она сделает свое дело, а о открытых файлах беспокойтесь сами.

Но все равно. Инструмент есть, Работает отлично, можно написать много разного кода.

Нас невозможно сбить с пути, нам пофигу куда идти.

10

Re: WSH: Изменить букву диска

DnsIs пишет:

alexii говорил, про mountvol.

Говорил. Ибо ни в заголовке темы, ни изначально речь о подключении Flash на одну и ту же букву речь не шла .

OFF: Работая посредством Far Manager даже как-то не задумываешься — на какую букву подключена Flash, достаточно дать ей внятную уникальную метку. Ещё проще там реализовано удаление устройства — Alt-F1/F2, выбор устройства, Shift-Del (если ещё учесть, что отключение происходит обычно сразу после работы с ней — то и выбор отпадает: курсор уже стоит на нужном устройстве).