Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 8

Автор: PulsSe
Дата сообщения: 03.09.2010 14:28
не хитрый, просто если б разбирался в данном вопросе то и не спрашивал бы что и как, а мне хочется узнать у людей кто шарит в этом деле почему именно не работает именно вот так:

Цитата:
[/q]
[q]помогите, хочу сменить букву флешки через батник

WMIC Path Win32_Volume Where Label="Имя_Флэшки" Set DriveLetter=R:

что то не получается, выдает такую штуку

ОШИБКА:

Код = 0х80041002
Описание = Не найден
Услуга = WMI

в чем дело кто нибудь знает

Автор: bomzzz
Дата сообщения: 03.09.2010 14:32
хитрый потому что это утилита отдельная со своей командной строкой, а не команда батника.
а почему - надо описнаие wmi читать

Добавлено:
echo list volume| diskpart>my.txt
вот так список раздлов мона получить. потом из этого списка по ведоммым только тебе признакам нужно определить букафку флешки ну и менять
Автор: NIKZZZZ
Дата сообщения: 03.09.2010 14:41
PulsSe

Цитата:
буква флешки сменилась - все гуд


А чем плохо


Код: Subst y: %~d0\
Автор: bomzzz
Дата сообщения: 03.09.2010 14:42
http://forum.ru-board.com/topic.cgi?forum=33&topic=9733
Автор: PulsSe
Дата сообщения: 03.09.2010 14:43
дык мне надо что бы все это дело автоматически работало, т.е. я втыкаю флэшку в люб комп, в авторун файл на флэшке прописываю выполнения этого батника, а батник в свою очередь и должен менять букву, ту на которую мне нужно. в этом и есть смысл всего вопроса, а ручками я и сам смогу сменить буковку, только такой варик не подходит, нужно автоматом что бы работало
Автор: bomzzz
Дата сообщения: 03.09.2010 14:43
PulsSe
NIKZZZZ
ага я вот ету фигню тоже нагуглил

Добавлено:
PulsSe
а если эта буква занята

Добавлено:
PulsSe
дык если батник в авторане на флешке - проще просто букву текущего диска определить

Добавлено:
echo %~D0
Автор: PulsSe
Дата сообщения: 03.09.2010 14:48
2NIKZZZZ,


Цитата:
А чем плохо


Код:
Subst y: %~d0\


Появится дубликат - диск Y:


спасибо, но этот вариант я знаю, к сожалению не совсем подходит(

2bomzzz, вот я и спрашиваю как сделать так что бы автоматом, прошу написать конкретный текст кода или как то так)


Автор: bomzzz
Дата сообщения: 03.09.2010 14:48
даже если ты будешь использовать букву Z, то есть проги которые ее тоже отжимают, пхп сервер какой то не могу вспомнить какой ее занимает, и виртуальная флешка тоже

Добавлено:
PulsSe
echo %~D0
выдает букву текущего диска, батник может и от нее плясать
Автор: PulsSe
Дата сообщения: 03.09.2010 14:50
я знаю что серверные имена используются с конца англ алфавита, но можно же сделать букву O например и пролем не будет, а если и будут то оч редко


если ты знаешь как провернуть все это дело автоматом, то напиши плиз код который в батнике нужно прописать что бы работало
Автор: bomzzz
Дата сообщения: 03.09.2010 14:53
тогда через дискпарт делай.

Добавлено:
echo list volume| diskpart
так получишь список
%~D0
так текущую букву
по букве найдешь номер тома
Автор: PulsSe
Дата сообщения: 03.09.2010 15:01

Цитата:
тогда через дискпарт делай.

Добавлено:
echo list volume| diskpart
так получишь список
%~D0
так текущую букву
по букве найдешь номер тома


пол дела сделано) а дальше как?
Автор: bomzzz
Дата сообщения: 03.09.2010 15:03
дальше пробовать получится выполнить эти две команды. может не получица
select volumen
assign letter=L
Автор: king_stiven
Дата сообщения: 03.09.2010 15:07
PulsSe
зачем тебе букву менять то?
Автор: PulsSe
Дата сообщения: 03.09.2010 15:08

Цитата:
дальше пробовать получится выполнить эти две команды. может не получица
select volumen
assign letter=L



команда select не является внутренней или внешней командой и т.д., не работает
Автор: bomzzz
Дата сообщения: 03.09.2010 15:09
echo select volume1| diskpart

Добавлено:
проще
echo select partition%~D0| diskpart

Добавлено:
echo select partition%%~D0:~0,1%| diskpart
или так

Добавлено:
echo select partition%%~D0:~0,1%| diskpart
echo assign letter=L| diskpart

проверь но скорее всего неполучица
Автор: PulsSe
Дата сообщения: 03.09.2010 15:15

Цитата:
echo select partition%%~D0:~0,1%| diskpart
echo assign letter=L| diskpart

проверь но скорее всего неполучица


указанный том не существует, выберете том и повторите попытку..

не работает короч(
Автор: bomzzz
Дата сообщения: 03.09.2010 15:16
ты ручками сначала смени а потом будешь гундеть работает или не работает
Автор: PulsSe
Дата сообщения: 03.09.2010 15:20
ручками все прекрасно меняется через diskmgmt.msc, мб есть варианты что бы все это делать то же через diskmgmt.msc, но только что бы автоматом.. через батник
Автор: bomzzz
Дата сообщения: 03.09.2010 15:22
http://technet.microsoft.com/ru-ru/library/cc757491(WS.10).aspx
вот тебе микрософт написькал как менять
Автор: PulsSe
Дата сообщения: 03.09.2010 15:25

Цитата:
http://technet.microsoft.com/ru-ru/library/cc757491(WS.10).aspx
вот тебе микрософт написькал как менять


спасибо, читал, проблему не решило
Автор: bomzzz
Дата сообщения: 03.09.2010 15:28
значит сторонюю утилиту ищи
Автор: PulsSe
Дата сообщения: 03.09.2010 15:30
Ребят, Кто знает как автоматизировать процесс смены буквы флешки через diskmgmt.msc через батник?
Автор: bomzzz
Дата сообщения: 03.09.2010 15:34
в vbs скриптах спроси
Автор: wolf0425
Дата сообщения: 03.09.2010 16:05

Цитата:
Ребят, Кто знает как автоматизировать процесс смены буквы флешки через diskmgmt.msc через батник?

как через diskmgmt.msc - не знаю, а вообще вот такой батник, запущенный с флешки (с правами админа) - перемонтирует её на буковку k:

Код: @echo off
cd /d c:
for /f "tokens=*" %%a in (' mountvol %~d0 /l ') do ( mountvol %~d0 /d & mountvol k: %%a & exit )
Автор: PulsSe
Дата сообщения: 03.09.2010 16:16

Цитата:
Цитата:
Ребят, Кто знает как автоматизировать процесс смены буквы флешки через diskmgmt.msc через батник?

как через diskmgmt.msc - не знаю, а вообще вот такой батник, запущенный с флешки (с правами админа) - перемонтирует её на буковку k:

Код:
@echo off
cd /d c:
for /f "tokens=*" %%a in (' mountvol %~d0 /l ') do ( mountvol %~d0 /d & mountvol k: %%a & exit )


запускать с системного диска не рекомендуется
(проверять хватит ли там прав отмонтировать с: - мне как-то лень)




СПАСИБО ДРУЖИЩЕ!!!!!!! КОРОТКО И ЯСНО!! Все работает, именно так как нужно!))
Удачи тебе мэн)

А еще можешь объянить что какая команда делает? оч хочется понять просто как работает)
Автор: wolf0425
Дата сообщения: 03.09.2010 16:18

Цитата:
дык мне надо что бы все это дело автоматически работало, т.е. я втыкаю флэшку в люб комп, в авторун файл на флэшке прописываю выполнения этого батника, а батник в свою очередь и должен менять букву, ту на которую мне нужно. в этом и есть смысл всего вопроса, а ручками я и сам смогу сменить буковку, только такой варик не подходит, нужно автоматом что бы работало
гораздо полезнее и безопаснее написать батник так, чтобы он одинаково работал независимо от буковки, на которую подключена флешка.


Добавлено:

Цитата:
А еще можешь объянить что какая команда делает?

%~d0 - заменяется препроцессором на букву диска, с которого запущен батник

mountvol %~d0 /l
печатает VolumeName этого диска, for /f (' ') это перехватывает и засовывает в %%a

mountvol %~d0 /d
размонтировать указанный диск (для этого нужно сначала текущей директорией с него уйти, чтоб освободился, этому служит cd /d c:)

mountvol k: %%a
смонтировать на букву к: тот диск, чей VolumeName перехвачен фором

& exit
выйти после этого, батника то по старому пути уже нет.

еще раз напоминаю, что с mountvol нужно быть аккуратнее, отмонтировать ею раздел винчетера - нефиг делать.
Автор: PulsSe
Дата сообщения: 03.09.2010 16:33

Цитата:
%~d0 - буква диска, с которого запущен батник
mountvol %~d0 /l печатает VolumeName этого диска, фор соответственно это перехватывает и заворачивает в %%a

mountvol %~d0 /d
размонтировать указанный диск (для этого нужно сначала текущей директорией с него уйти)
mountvol k: %%a
смонтировать на букву к: тот диск, чей VolumeName перехвачен фором
& exit
выйти после этого, батника то там уже нет.


Спасибо за пояснение) примерно понял что и как и почему у меня pause в конце текста не работает) слушай а можно еще один вопрос..

вот произошла смена буквы диска, я собираюсь ее запихать в авторун (что бы когда запихал в др комп эту флеху, буква тут же сменилась) теоретически тут возможны 2 варианта.. либо будет зацикливание(это при том условии что после смены буквы опять же произойдет запуск авторуна и опять смена буквы диска и т.д.) в это случае нужно сделать что то вроде проверки на то что стоит ли выполнять данный батник или не..

а второе, вставил я флешку, буква сменилась, а автозапуск не произошел, в этом случае нужно сделать что бы файл авторун опять запустился, и опять же проверка на то, нужно ли еще раз менять букву диска..

просто у меня в авторане прописано несколько программ, которые запускаются после того, как вставил флэшку в комп..
как то так..) спасибо)
Автор: wolf0425
Дата сообщения: 03.09.2010 16:46

Цитата:
теоретически тут возможны 2 варианта.. либо будет зацикливание
держи, для варианта когда входных параметров у батника не бывает (например при автостарте)

Код: @echo off
cd /d c:
if /i %~d0 neq k: if "%~1" equ "" for /f "tokens=*" %%a in (' mountvol %~d0 /l ') do ( mountvol %~d0 /d & mountvol k: %%a & "k:\%~nx0" . )
cd /d %~d0
echo running at %cd%
Автор: PulsSe
Дата сообщения: 03.09.2010 16:50
спасибо тебе огромное!)) выручил оч)

я знаю, просто так удобней будет и потом когда софт будет добавлятся, проблем с этим никаких не будет, тут получается один раз сделал и забыл)

Добавлено:
а еще я правильно отредактировал на другую букву?

@echo off
cd /d c:
if /i %~d0 neq O: if "%~1" equ "" for /f "tokens=*" %%a in (' mountvol %~d0 /l ') do ( mountvol %~d0 /d & mountvol O: %%a & "O:\%~nx0" . )
cd /d %~d0
echo running at %cd%
Автор: wolf0425
Дата сообщения: 03.09.2010 16:54

Цитата:
тут получается один раз сделал и забыл)
тут может получиться, что пришел на машину с семеркой и батник пришлось запускать вручную от админа. надо кстати проверку добавить в конец что всё же с правильной буквы работает.

Хотя ситуацию с программами, которые хранят полные пути в своих инишниках, которые не будешь же править при любом втыкании - вполне понимаю.
но обычно портативные верси сделать можно...


Добавлено:

Цитата:
а еще я правильно отредактировал на другую букву?
вроде правильно

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.