Войти

Показать полную графическую версию : [решено] определение присутствия в системе дисковода


Fortress1
12-08-2013, 18:02
Добрый день господа. Подскажите плиз возможен ли такой скрипт или батник, который будет ставить программу для записи дисков CDBurnerXP из BSpost или WPI только при наличия в системе дисковода оптических дисков? Возможно ли это вообще? Чтоб например программа автоматом пропускала прогу для записи дисков если устройство нетбук или ултрабук

Iska
12-08-2013, 18:26
Fortress1, во-первых, ничто не мешает пользовать подобные приложения без наличия привода — например, для создания образов, просмотра проектов и т.п.

Самое простое, WSH:
Option Explicit

Dim objDrive

For Each objDrive In WScript.CreateObject("Scripting.FileSystemObject").Drives
If objDrive.DriveType = 4 Then
WScript.Quit 1
End If
Next

WScript.Quit 0

В случае отсутствия привода возвращается нулевой код возврата, при наличии — ненулевой.

Аналогично, WSH+Wbem:
Option Explicit

If WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_CDROMDrive").Count > 0 Then
WScript.Quit 1
End If

WScript.Quit 0

Foreigner
12-08-2013, 18:30
Fortress1,

@echo off
setlocal

for /f %%i in (' "2>nul wmic cdrom get name /value" ') do 1>nul set "%%i"
if defined name (echo cdrom exists) else (echo cdrom not exists)


PS. Могут быть usb-cd
PSS. Могут быть виртуальные дисководы

Petya V4sechkin
13-08-2013, 19:28
Fortress1, в дополнение к вышесказанному
Утилиты для определения возможностей CD-привода (IfRW, IfDVD) (http://forum.oszone.net/thread-53790.html)

Fortress1
14-08-2013, 14:54
Fortress1, во-первых, ничто не мешает пользовать подобные приложения без наличия привода — например, для создания образов, просмотра проектов и т.п.
Самое простое, WSH: »

Добрый день, а как этот скрпт доделать чтоб он либо запускал программу с ключом либо нет если нет дисковода?

@echo off
setlocal
for /f %%i in (' "2>nul wmic cdrom get name /value" ') do 1>nul set "%%i"
if defined name (echo cdrom exists) else (echo cdrom not exists) »

или это как дописать?)) И что лучше батник или скрипт? Может что то универсальнее из этого? Будет запускаться на ОС от ХР до вин8 х32-х64 возможно англоязычн

Foreigner
14-08-2013, 15:57
Fortress1,

@echo off
setlocal
for /f %%i in (' "2>nul wmic cdrom get name /value" ') do 1>nul set "%%i"
if defined name ( start "" "%programfiles%\prog\prog.exe" /key ) else (echo cdrom not exists)




© OSzone.net 2001-2012