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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Наличие диска

Ответить
Настройки темы
CMD/BAT - [решено] Наличие диска

Аватара для Devils0411

Ветеран


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


Конфигурация

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


Необходи батник, который проверял наличие файла test.exe на съемных дисках (имеется ввиду CD, DVD-диски). Если батник находит этот файл на диске, то выполняется run test.exe, если не находит, то выдавал бы сообщение с просьбой вставить диск, на котором есть этот файл.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 11:07, 02-07-2009

 

Аватара для gora

Ушёл из жизни


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

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


Devils0411, посмотрите здесь, подобная задача.

Отправлено: 11:22, 02-07-2009 | #2



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

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


Аватара для Devils0411

Ветеран


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

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


Код: Выделить весь код
:2
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:\test.exe set CDROM=%%i:
if exist %CDROM% goto 1
if not exist (
echo Inserted CD with Windows XP Sp3
)
pause > nul
goto 2
:1
start test.exe
Где ошибка? Необходимо чтоб выдавала ошибку о том, что не вставлен диск. А вместо этого выдает вот такую ошибку и окно закрывается

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 16:31, 02-07-2009 | #3


Аватара для gora

Ушёл из жизни


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

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


Цитата Devils0411:
if exist %CDROM% goto 1
if not exist (
echo Inserted CD with Windows XP Sp3
)
»
Попробуйте заменить на
Код: Выделить весь код
If DEFINED CDROM (goto :1) Else (echo Inserted CD with Windows XP Sp3)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:44, 02-07-2009 | #4


Аватара для Devils0411

Ветеран


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

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


Проблема решилась частично. Окошечко "Диск отсутствует" выскакивает. Можно ли его убрать?

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 17:00, 02-07-2009 | #5


Аватара для gora

Ушёл из жизни


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

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


Цитата Devils0411:
Окошечко "Диск отсутствует" выскакивает. »
А что такое диск E в вашей системе, не картридер случайно? Если картридер, то попробуйте изменить порядок опроса на обратный:
Код: Выделить весь код
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do if exist %%i:\test.exe set CDROM=%%i:
и путь в строке запуска нужно указать полный, если Вы запускаете файл с CD:
Код: Выделить весь код
start %CDROM%\test.exe

Отправлено: 19:24, 02-07-2009 | #6


Аватара для Devils0411

Ветеран


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

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


Цитата gora:
диск E »
Как не странно, но это привод

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 19:29, 02-07-2009 | #7


Аватара для gora

Ушёл из жизни


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

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


Цитата Devils0411:
Как не странно, но это привод »
Тогда вставьте в него диск. Это реакция системы на дисковод в котором нет диска. Других способов обхода пустых дисководов я не знаю.

Отправлено: 20:22, 02-07-2009 | #8


Ветеран


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

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


Можно с помощью diskpart определить cd-rom (по файловой системе), а потом уже на этом диске файлы искать. Минус - требует административных привилегий.
ссылка может не работать сегодня с 21:00 до 23:00 - обещали работы в ДЦ

Отправлено: 21:29, 02-07-2009 | #9


Googler


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

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


вариант через WMI:
Код: Выделить весь код
@Echo Off

Call :WaitDisk setup.exe
Start %CDROM%\setup.exe

EXIT

:WaitDisk
 For /F "Tokens=1,2 Delims==" %%i In ('WMIC LogicalDisk Where DriveType^=5 Get Name^,VolumeSerialNumber /Value^|Find "="') Do Call :TestDisk "%~1" %%i %%j
 If Defined CDROM GoTo :EOF
 Echo Insert CD with Windows XP Sp3
 Pause >Nul
GoTo :WaitDisk

:TestDisk
 Set $%2=%3
 If %2==VolumeSerialNumber If Defined $%2 If Exist "%$Name%\%~1" Set CDROM=%$Name%
GoTo :EOF

Отправлено: 07:07, 03-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Наличие диска

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Батник проверяющий наличие файла на сервере? ofcoss Скриптовые языки администрирования Windows 3 29-07-2009 06:03
CMD/BAT - [решено] Проверить наличие файла с текущей датой. OlegStarov Скриптовые языки администрирования Windows 4 21-04-2009 12:11
[решено] Проверка на наличие пишушего привода в системе. Keeper2006 Автоматическая установка Windows 2000/XP/2003 1 03-11-2008 11:27
[решено] Ошибка при выключении/перезагрузке: Проверьте наличие диска в устройстве A: TEXNO Microsoft Windows 2000/XP 10 16-06-2007 13:54
Как определить наличие диска в CD-ROM'е из командной строки? AT Хочу все знать 1 02-01-2004 10:37




 
Переход