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

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

Ответить
Настройки темы
CMD/BAT - Проверка наличия диска в дисководе по папке

Новый участник


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

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


У меня такой вопрос: мне нужно написать батник, чтобы он проверял наличие диска в дисководе, а точнее наличие папки на этом диске.
Если быть точнее, то нужно сделать так, чтобы выполнялось условие, если есть эта папка на диске, то перейти к выполнению следующего блока программы.

Второй вопрос, который у меня появился-как отключить сочетание клавиш на клавиатуре через реестр с помощью батника.Чтобы определенные буквы не работали.

Отправлено: 12:51, 23-08-2009

 

Аватара для verna

Новый участник


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

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


первое

if exist D:\aaa\*.* goto 1
goto end
:1
echo "есть файлы"
:end

второе
не реально (AFAIK)

-------
ООО "ВЕРНА" - ИТ решения для малого и среднего бизнеса
http://verna.com.ua/spec/IT-infrastr..._optimization/


Отправлено: 13:46, 25-08-2009 | #2



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

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


Ветеран


Contributor


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

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


По первому вопросу предлагаю то же самое, что и verena, но с более читаемой логикой

Set What=D:\Primer

If Not Exist %What% GoTo End

Pause 'Делаем, что задумано'


:End

Отправлено: 20:16, 25-08-2009 | #3


Новый участник


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

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


но проблема в том что на каждом компе один и тот же жесткий диск может быть под разной буквой.
Проще говоря дома мой диск d, приду к другу, а у него этот диск будет под другой буквой.
мне нужен батник, который находил бы мой CD или DVD диск на компе по метке(например прога.exe)
как мне это сделать

megaloman, может поможешь?

Отправлено: 13:52, 26-08-2009 | #4


Ветеран


Contributor


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

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


Идея решения (в bat - файле) - перебрать все буквы дисков (от A до Z) и тестировать для каждой наличие файла (папки). Не очень красиво, но в рамках bat-файла иного не вижу.
Альтернатива - VBS (там можно выбрать только имеющиеся диски, при желании - СД или ДВД).
Освобожусь - напишу.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:19, 26-08-2009 | #5


Ветеран


Contributor


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

Профиль | Отправить 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
Благодарности: 108

Профиль | Отправить 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


Ветеран


Contributor


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

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


Подсмотрел у NiOl перебор букв, сократил свой код.

Код: Выделить весь код
Echo Off

Set What=:\Примеры макроса

Set Log=False
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 Call :Execution %%D
GoTo End

:Execution

If %Log%==True GoTo End
If Not Exist "%1%What%" GoTo End
Set Log=True

Set Disk=%1

Echo %Disk%%What% 'Делаем, что задумано'
Pause '' 


:End

Отправлено: 22:50, 26-08-2009 | #8


Новый участник


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

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


проверю, отпишусь

Отправлено: 16:55, 27-08-2009 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход