Страница 1 из 2

Консольная программа для смены буквы диска (флешки)

Добавлено: Ср июн 20, 2012 20:52
Mellomann
Кто поможет?

Имеем некую флешку, которая на разных компах назначается на разные буквы.
Нужно создать кнопку для ТК, которая будет менять букву указываемого диска на нужную.
В идеале должно выглядеть примерно так: "<программа-буквоменялка.exe> <буква-было> <буква-стало>".
Есть ли такое в принципе?
Есть ли возможность проделать это штатными средствами винды при помощи ком.строки? (соответственно, её команду и вписал бы в кнопку)

Сообщения выделены в отдельную тему из Обмен кнопками
Моторокер.

Добавлено: Ср июн 20, 2012 21:45
Вахмурка

Добавлено: Ср июн 20, 2012 21:51
Mellomann
Вахмурка
Нет, мне не клонировать диски нужно, и именно сменить букву.
Т.е., например, меняем D: на H: и после этого у нас уже нет диска D:, а только H:.
Должно выполняться действие, которое можно в гуишном виндовом диспетчере дисков сделать, изменяя букву вручную. С одной лишь разницей - мне нужна консольная комманда (которую можно автоматизировать), а не блуждание по ветвям "управления компом" каждый раз...

Добавлено: Ср июн 20, 2012 22:25
Вахмурка
subst - это консольная коМанда (с одной "М", "Коммандо" - это фильм со Шварценеггером), а по второй ссылке рекомендуется почитать начиная со слов "Using a command line" ;)

Добавлено: Ср июн 20, 2012 23:07
Mellomann
Вахмурка писал(а):subst - это консольная коМанда (с одной "М", "Коммандо" - это фильм со Шварценеггером),
точно, совсем уж в буквах запутался за день... так и скачут... :lol:
Вахмурка писал(а):а по второй ссылке рекомендуется почитать начиная со слов "Using a command line" ;)
там рассматривается в более сложном виде и опять-таки с привязкой к командам внутри программы, привязываясь к номерам партиций.
Мне бы нечто вроде такого, к примеру:
<прога.exe> %commander_drive% h:

Добавлено: Ср июн 20, 2012 23:16
Tol!k
Например, раз, два

Добавлено: Ср июн 20, 2012 23:38
Mellomann
Tol!k
Предложеный вариант интересен, но, к сожалению, для использования неопытными юзерами (что будет в моей задаче позже) малопригоден и опасен.
Есть ли способ без опасности для C: и не работающий при использовании диска?

Добавлено: Чт июн 21, 2012 00:28
Tol!k
два
?

Флешке присвоить уникальную метку {WINDOWS VISTA (игровая)} ;
из списка дисков убрать С: (вдруг метка окажется не такая уж уникальная)

Добавлено: Чт июн 21, 2012 11:26
Mellomann
Tol!k
А если флешек много, они подписаны по фамилиям работников, и почти не бывают повторения?
Слишком долго будет на каждого настраивать. ПРоще тогда уже руками было бы.
А по тому синтаксису, что я изначально думал, есть софтинка?

Добавлено: Чт июн 21, 2012 17:00
Flasher
Mellomann
Держи.

Добавлено: Чт июн 21, 2012 17:40
Mellomann
Спасибо! Вроде бы в самый раз.
Вечером дома гляну.

Добавлено: Чт июн 21, 2012 18:09
Tol!k
подписаны по фамилиям работников
только фамилия, без И.О. (без пробелов)?
Буква д.б. у всех одинаковая?

Модераторы
надо бы выделить в отдельную тему, кнопка здесь явно не самое главное

Добавлено: Чт июн 21, 2012 21:21
Tol!k

Код: Выделить всё

@echo off &setlocal enableextensions &chcp 1251 >nul

set Label=Иванов Петров Сидоров

for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D) do (
	if exist %%a:\. for /f "tokens=6,*" %%b in ('vol %%a:') do (
		for %%l in (%Label%) do if /i "%%c"=="%%~l" set "Drive=%%a"
	)
)
if not "%Drive%"=="" (echo Letter: %Drive%) else (echo Label not found.)
if not "%Drive%"=="" if exist "ReMount.exe" (
	%ComSpec% /C "ReMount.exe" -ReMount %Drive%: R: -f
) else (
	echo File ReMount.exe is not exist.
)

Добавлено: Пт июн 22, 2012 00:22
Mellomann
Tol!k писал(а):только фамилия, без И.О. (без пробелов)?
Буква д.б. у всех одинаковая?
Если бы была система - было бы проще. У кого как, кто пишет полностью, кто сокращает, порядок ф.и.о./и.о.ф./... различается. Да и за этим не особо важно, главное - просто отличать где чьё дабы не было путаницы.
Tol!k писал(а):надо бы выделить в отдельную тему, кнопка здесь явно не самое главное
изначально была идея именно про кнопку, и при помощи утильки замечательно решается.

код вышел простой:

Код: Выделить всё

TOTALCMD#BAR#DATA
%PROGRAMFILES%\ReMount131\ReMount.exe
. H:
%PROGRAMFILES%\ReMount131\ReMount.exe
ReMount
%PROGRAMFILES%\ReMount131\
0
-1
Задача решена. Всем спасибо!

Добавлено: Сб июн 23, 2012 20:12
Tol!k
код вышел простой:
Нужно будет переходить на флешку, а батник можно запускать из любого места
кто пишет полностью, кто сокращает, порядок ф.и.о./и.о.ф./... различается.

Код: Выделить всё

set Label="Иванов И И" "П Петров" Сидоров