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

Показать сообщение отдельно

Ветеран


Contributor


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

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


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

Вот еще вариант. Идея решения - запускаем 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