![]() |
Проверка наличия диска в дисководе по папке
У меня такой вопрос: мне нужно написать батник, чтобы он проверял наличие диска в дисководе, а точнее наличие папки на этом диске.
Если быть точнее, то нужно сделать так, чтобы выполнялось условие, если есть эта папка на диске, то перейти к выполнению следующего блока программы. Второй вопрос, который у меня появился-как отключить сочетание клавиш на клавиатуре через реестр с помощью батника.Чтобы определенные буквы не работали. |
первое
if exist D:\aaa\*.* goto 1 goto end :1 echo "есть файлы" :end второе не реально (AFAIK) |
По первому вопросу предлагаю то же самое, что и verena, но с более читаемой логикой
Set What=D:\Primer If Not Exist %What% GoTo End Pause 'Делаем, что задумано' :End |
но проблема в том что на каждом компе один и тот же жесткий диск может быть под разной буквой.
Проще говоря дома мой диск d, приду к другу, а у него этот диск будет под другой буквой. мне нужен батник, который находил бы мой CD или DVD диск на компе по метке(например прога.exe) как мне это сделать megaloman, может поможешь? |
Идея решения (в bat - файле) - перебрать все буквы дисков (от A до Z) и тестировать для каждой наличие файла (папки). Не очень красиво, но в рамках bat-файла иного не вижу.
Альтернатива - VBS (там можно выбрать только имеющиеся диски, при желании - СД или ДВД). Освобожусь - напишу. |
Вот батник, перебирает все диски, если на каком-то находит заданную папку (или файл, смотря что напишите в переменной 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 |
Предлагаю искать нужный диск не по папке, а по метке тома, а еще лучше по "серийнику тома", которые можно увидить командой Vol:
Код:
@Echo off |
Подсмотрел у NiOl перебор букв, сократил свой код.
Код:
Echo Off |
проверю, отпишусь
|
Время: 07:48. |
Время: 07:48.
© OSzone.net 2001-