CMD/BAT - [решено] Наличие диска
-
Devils0411
CMD/BAT - [решено] Наличие диска
Необходи батник, который проверял наличие файла test.exe на съемных дисках (имеется ввиду CD, DVD-диски). Если батник находит этот файл на диске, то выполняется run test.exe, если не находит, то выдавал бы сообщение с просьбой вставить диск, на котором есть этот файл.
-
gora
Re: CMD/BAT - [решено] Наличие диска
Devils0411, посмотрите
CMD/BAT - [решено] Как организовать поиск нужного диска и запуск с него приложения?
, подобная задача.-
gora
Re: CMD/BAT - [решено] Наличие диска
Код:
Где ошибка? Необходимо чтоб выдавала ошибку о том, что не вставлен диск. А вместо этого выдает вот такую ошибку и окно закрывается
Код: Выделить всё
: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Где ошибка? Необходимо чтоб выдавала ошибку о том, что не вставлен диск. А вместо этого выдает вот такую ошибку и окно закрывается
-
gora
Re: CMD/BAT - [решено] Наличие диска
Цитата Devils0411:
if exist %CDROM% goto 1
if not exist (
echo Inserted CD with Windows XP Sp3
)
Попробуйте заменить на
Код:
if exist %CDROM% goto 1
if not exist (
echo Inserted CD with Windows XP Sp3
)
CMD/BAT - [решено] Наличие диска
Попробуйте заменить на
Код:
Код: Выделить всё
If DEFINED CDROM (goto :1) Else (echo Inserted CD with Windows XP Sp3)-
gora
Re: CMD/BAT - [решено] Наличие диска
Проблема решилась частично. Окошечко "Диск отсутствует" выскакивает. Можно ли его убрать?
-
gora
Re: CMD/BAT - [решено] Наличие диска
Цитата Devils0411:
Окошечко "Диск отсутствует" выскакивает.
А что такое диск E в вашей системе, не картридер случайно? Если картридер, то попробуйте изменить порядок опроса на обратный:
Код:
и путь в строке запуска нужно указать полный, если Вы запускаете файл с CD:
Код:
Окошечко "Диск отсутствует" выскакивает.
CMD/BAT - [решено] Наличие диска
А что такое диск 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-
gora
Re: CMD/BAT - [решено] Наличие диска
Цитата Devils0411:
Как не странно, но это привод
Тогда вставьте в него диск. Это реакция системы на дисковод в котором нет диска. Других способов обхода пустых дисководов я не знаю.
Как не странно, но это привод
CMD/BAT - [решено] Наличие диска
Тогда вставьте в него диск. Это реакция системы на дисковод в котором нет диска. Других способов обхода пустых дисководов я не знаю.

-
Busla
Re: CMD/BAT - [решено] Наличие диска
Можно с помощью diskpart определить cd-rom
(по файловой системе), а потом уже на этом диске файлы искать. Минус - требует административных привилегий. ссылка может не работать сегодня с 21:00 до 23:00 - обещали работы в ДЦ
-
Busla
Re: CMD/BAT - [решено] Наличие диска
вариант через 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