Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - batch file - определить букву флеш-диска

Ответить
Настройки темы
Любой язык - batch file - определить букву флеш-диска

Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


как сделать batch file который копировал на usb брелок ,сложность такая узнать какая буква будет у usb брелка

Отправлено: 12:04, 22-10-2008

 

Аватара для AlterEgoFS

Пользователь


Сообщения: 126
Благодарности: 3

Профиль | Отправить PM | Цитировать


simon171078,
Код: Выделить весь код
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\file set flash=%%i:
где file это папка/файл, лежащий только на этой флешке и нигде больше. используется для идентификации. я например создал в корне флешки пустой файл "flashdrive", у меня скрипт выглядит так

Код: Выделить весь код
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\flashdrive set flash=%%i:
можешь прям это и использовать. а дальше в батнике, используя новую переменную %flash%, делаешь что надо. взято из дистрибутива zverdvd )

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

Отправлено: 21:02, 10-02-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar primvbsbat.rar
(850 байт, 44 просмотров)

Вот еще вариант. Идея решения - запускаем vbs-скрипт, который определяет сменные накопители в состоянии готовности в системе и запускает батник, для которого параметр - буква: сменного диска.
В VBS-скрипте я организовал подтверждение на выбор сменного диска (на случай, если их несколько)
Попутно выдаю информацию: метка тома, серийный номер, свободное место.
Если задача ставится - выбрать первый попавшийся накопитель, можно упростить скрипт (удалится более половины строк), чтобы он ничего не спрашивал.
Код: Выделить весь код
' Скрипт находит сменные накопители на компьютере (кроме A:)
' Выдаёт диалог на выбор конкретного
' Запускает указанный батник с параметром - именем (путём) диска

Bat = "Batnik.bat"      '- батник, который запускаетcя скриптом
			'- если батник не рядом со скриптом-указать полный путь

Set WS = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Disks = FSO.Drives

L = True
For Each Disk In Disks
    DPath = Disk.Path
    If Disk.DriveType = 1 And Disk.IsReady And UCase(DPath) <> "A:" Then
        Msg = "Сменный носитель  " + Disk.Path
        Msg = Msg + vbCrLf + vbCrLf + "Метка носителя:    " + Disk.VolumeName
        Msg = Msg + vbCrLf + "Серийный номер:    " + CStr(Disk.SerialNumber)
        Msg = Msg + vbCrLf + vbCrLf + "Свободное место:  " + CStr(Round(Disk.FreeSpace / 1024 / 1024, 1)) + " Mb"
        Msg = Msg + vbCrLf + vbCrLf + "Вы будете работать с этим носителем?"
        Ans = MsgBox(Msg, 35, "Выбор сменного носителя")
        If Ans = 2 Then Exit For
        If Ans = 6 Then
            L = False
            Ret = WS.Run("cmd /c " + Bat + " " + DPath, 1, False)
            Exit For
        End If
    End If
Next
If L Then MsgBox "Ни одного сменного носителя не выбрано"
Для примера использовал батник с именем Batnik.bat
Код: Выделить весь код
@Echo Off
Echo %1
Pause
В прикреплённом файле - скрипт и пример батника

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-02-2012 в 00:06.


Отправлено: 00:01, 11-02-2012 | #12


Ветеран


Сообщения: 2204
Благодарности: 729

Профиль | Отправить PM | Цитировать


А как насчёт моего вопроса в формате cmd?

Отправлено: 01:05, 11-02-2012 | #13


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


sov44, Попробуйте вариант: Запускайте vbs-скрипт, он опросит имеющие сменные диски в состоянии готовности, запомнит их (если они есть), выдаст приглашение на подключение флэшки, определит появившуюся букву, запустит указанный Вами батник с параметром -буква диска: Пример батника в моём предыдущем посте
Код: Выделить весь код
' Скрипт находит сменные накопители на компьютере (кроме A:)
' Выдаёт запрос на подключение нового, после подключения - опред его букву
' Запускает указанный батник с параметром - именем (путём) диска

Bat = "Batnik.bat"      '- батник, который запускаетcя скриптом
                        '- если батник не рядом со скриптом-указать полный путь

Set WS = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Disks = FSO.Drives

iOld = ""
For Each Disk In Disks
    DPath = UCase(Disk.Path)
    If Disk.DriveType = 1 And Disk.IsReady And DPath <> "A:" Then iOld = iOld + UCase(Disk.DriveLetter)
Next
        
L = True
Do While L
    Ans = MsgBox("Вставьте сменный носитель", 49)
    If Ans = 2 Then Exit Do
    If Ans = 1 Then
        Set Disks = FSO.Drives
        For Each Disk In Disks
            DPath = UCase(Disk.Path)
            If Disk.DriveType = 1 And Disk.IsReady And DPath <> "A:" Then
                If InStr(1, iOld, UCase(Disk.DriveLetter), 1) = 0 Then
                    L = False
                    Ret = WS.Run("cmd /c " + Bat + " " + DPath, 1, False)
                    Exit For
                End If
            End If
        Next
    End If
Loop

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:34, 11-02-2012 | #14


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата simon171078:
сложность такая узнать какая буква будет у usb брелка »
Букву можно определить так:
Код: Выделить весь код
wmic logicaldisk where drivetype=2 get deviceid

Отправлено: 09:25, 12-02-2012 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - batch file - определить букву флеш-диска

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Batch file Rahaka Хочу все знать 1 12-12-2009 18:12
Quick Batch File Compiler 3.2.2.0 OSZone Software Новости программного обеспечения 0 31-10-2009 18:30
Разное - Изменить в программе букву диска d_u Программирование и базы данных 9 05-01-2009 18:56
Как сменить букву системного диска? alibaster Microsoft Windows NT/2000/2003 6 02-10-2007 18:31
Как изменить букву диска (СD)? Guest Хочу все знать 2 18-02-2004 19:32




 
Переход