|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка наличия диска в дисководе по папке |
|
CMD/BAT - Проверка наличия диска в дисководе по папке
|
Новый участник Сообщения: 37 |
Профиль | Отправить PM | Цитировать У меня такой вопрос: мне нужно написать батник, чтобы он проверял наличие диска в дисководе, а точнее наличие папки на этом диске.
Если быть точнее, то нужно сделать так, чтобы выполнялось условие, если есть эта папка на диске, то перейти к выполнению следующего блока программы. Второй вопрос, который у меня появился-как отключить сочетание клавиш на клавиатуре через реестр с помощью батника.Чтобы определенные буквы не работали. |
|
Отправлено: 12:51, 23-08-2009 |
Новый участник Сообщения: 35
|
Профиль | Сайт | Отправить PM | Цитировать первое
if exist D:\aaa\*.* goto 1 goto end :1 echo "есть файлы" :end второе не реально (AFAIK) |
------- Отправлено: 13:46, 25-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать По первому вопросу предлагаю то же самое, что и verena, но с более читаемой логикой
Set What=D:\Primer If Not Exist %What% GoTo End Pause 'Делаем, что задумано' :End |
Отправлено: 20:16, 25-08-2009 | #3 |
Новый участник Сообщения: 37
|
Профиль | Отправить PM | Цитировать но проблема в том что на каждом компе один и тот же жесткий диск может быть под разной буквой.
Проще говоря дома мой диск d, приду к другу, а у него этот диск будет под другой буквой. мне нужен батник, который находил бы мой CD или DVD диск на компе по метке(например прога.exe) как мне это сделать megaloman, может поможешь? |
Отправлено: 13:52, 26-08-2009 | #4 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать Идея решения (в bat - файле) - перебрать все буквы дисков (от A до Z) и тестировать для каждой наличие файла (папки). Не очень красиво, но в рамках bat-файла иного не вижу.
Альтернатива - VBS (там можно выбрать только имеющиеся диски, при желании - СД или ДВД). Освобожусь - напишу. |
|
------- Отправлено: 16:19, 26-08-2009 | #5 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать Вот батник, перебирает все диски, если на каком-то находит заданную папку (или файл, смотря что напишите в переменной What) делает что-то (у меня делает паузу, Вы вправе вставить любой блок команд)
Похоже, буквы можно перебрать проще, но что-то на ум не пришло. Echo On Set What=:\Телефоны Беларуси 2007 Set Log=False For /L %%j in (1,1,26) Do Call :Litera %%j GoTo End :Litera %1 If %Log%==True GoTo End FOR /F "tokens=%1", %%i IN ('Echo a b 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 Set Disk=%%i If Not Exist "%Disk%%What%" GoTo End Set Log=True Pause %Disk%%What% 'Делаем, что задумано' :End |
------- Отправлено: 21:06, 26-08-2009 | #6 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Предлагаю искать нужный диск не по папке, а по метке тома, а еще лучше по "серийнику тома", которые можно увидить командой Vol:
@Echo off rem Здесь указывается метка нужного диска, а лучше серийный номер тома: set Label=B8BD-1B77 for %%D 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 ( vol %%D:|FIND /c "%Label%">nul if not errorlevel 1 set Disk=%%D: cls ) rem Если диск не найден, то сообщение об ошибке и выход if "%Disk%"=="" ( MSG * ERROR: Disk not attached!!! exit ) rem Действия, если нужный диск найден: echo %Disk% |
------- Отправлено: 21:46, 26-08-2009 | #7 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать Подсмотрел у NiOl перебор букв, сократил свой код.
|
Отправлено: 22:50, 26-08-2009 | #8 |
Новый участник Сообщения: 37
|
Профиль | Отправить PM | Цитировать проверю, отпишусь
|
Отправлено: 16:55, 27-08-2009 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Проверка наличия соединения с интернетом (*.vbs) | BadAngel | Скриптовые языки администрирования Windows | 9 | 18-04-2011 12:06 | |
CMD/BAT - [решено] Определение атрибута файла & проверка наличия процесса | user_123 | Скриптовые языки администрирования Windows | 10 | 19-11-2010 16:15 | |
Прочие - [решено] Что делать если игра запускается только при наличии диска в дисководе | firedevil | Программное обеспечение Windows | 4 | 13-09-2008 11:54 | |
Есть ли способ запретить выключение компа при наличии компакт-диска в дисководе? | truvo | Хочу все знать | 1 | 05-09-2008 06:14 | |
[решено] Проверка наличия поля в таблице БД | Artem-Samsung | Вебмастеру | 8 | 19-03-2008 21:40 |
|