|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Составление списка существуюих дисков + отсев дисков не имеющих ФС |
|
|
CMD/BAT - [решено] Составление списка существуюих дисков + отсев дисков не имеющих ФС
|
Новый участник Сообщения: 13 |
Здравствуйте, столкнулся с такой проблемой: раньше я использовал вот такой вот скрипт для поиска файла с именем usbroot.dsk на дисках и создания переменной %usbroot% с присвоением диска содержащего этот файл:
for %i in (C D E F G H I J K L N M O P Q R S T U V W X Y Z) do if exist %i:\usbroot.dsk setx usbroot %i: -m В связи с этим я решил немного поправить скрипт. Суть такая: вместо перебора букв дисков, я хотел использовать только те диски, где существует ФС. Для этого я воспользовался командой: но отсеять диски по ФС у меня так и не получилось. Прошу, помогите разобраться в следующих вопросах: 1) Что, собственно, нужно дописать в скрипт, чтобы отсеять эти диски? 2) Каким способом передать список дисков (с ФС) в функцию поиска файла? Возможно есть более рациональный способ нежели использование "wmic logicaldisk get caption,filesystem" или возможность отсеять диски не по ФС. Если у вас есть идеи по этому поводу, поделитесь ими. |
|
Отправлено: 23:02, 28-04-2010 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать |
Отправлено: 01:36, 29-04-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать тогда еще пара вариантов:
For /F "UseBackQ Skip=1" %%i In ( `WMIC LogicalDisk Where "FileSystem LIKE '_%%'" Get Caption^|Find ":"` ) Do If Exist %%i\diskroot.txt SetX diskroot %%i -m |
Отправлено: 05:57, 29-04-2010 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Да… Скобки при наборе «for /…», оказывается, могут использоваться одновременно и как операторные… Не знал
![]() |
Отправлено: 08:43, 29-04-2010 | #4 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать Действительно проблема есть, 2 машины с кардридерами и на обеих вылез косяк
amel27, спасибо, супер! |
|
Отправлено: 16:52, 28-01-2011 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Я для подобной задачи использовал
echo list volume | diskpart его вывод подавал на for и проверял значение столбца файловой системы для поиска оптических приводов, или метки диска для поиска конкретной флешки |
Отправлено: 22:42, 28-01-2011 | #6 |
![]() Новый участник Сообщения: 38
|
for %i in (C D E F G H I J K L N M O P Q R S T U V W X Y Z) do if exist %i:\ (if exist "%%i:\usbroot.dsk setx usbroot %i: -m) |
Последний раз редактировалось conty9, 04-02-2011 в 18:04. Отправлено: 21:23, 02-02-2011 | #7 |
Старожил Сообщения: 183
|
Профиль | Отправить PM | Цитировать Помогите побороть непонятную ситуацию, пробЫвал все коды для батника на этой странице и все у меня не срабатывают, запускаю код сценария в windows 7 с правами админа.
Цитата:
Хотя вот с такой командой проблем не возникает: Цитата:
|
||
Последний раз редактировалось FreshMen85, 13-02-2011 в 20:17. Отправлено: 19:48, 13-02-2011 | #8 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Несколько слов по поводу скриптов товарища amel27:
1) двойные проценты %% вызывают ошибку 2) первый скрипт без них заработал нормально и то только в готовой системе, во время же автоматической установки не срабатывает, а вот второй вместо двоеточия в переменную diskroot к букве DVD-ROM добавляет -m, вместо Х: получается Х -m Господа скриптописатели, объясните в чём дело |
Последний раз редактировалось nemoi, 04-04-2011 в 15:05. Отправлено: 18:35, 28-03-2011 | #9 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать "не работает" потому, что setx инициализирует глобальную переменную, которая в уже существующей сессии недоступна
для обычного скрипта надо использовать обычный set |
Отправлено: 10:50, 29-03-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Службы - [решено] Не удалось подключиться к службе логических дисков", "Диспетчер логических дисков(LDM | ТатьянаИ | Microsoft Windows 2000/XP | 3 | 29-12-2009 14:21 | |
Мешанина из дисков | Notsaint | Ноутбуки | 3 | 27-05-2009 13:05 | |
HDD - Отключение дисков. | exo | Накопители (SSD, HDD, USB Flash) | 2 | 12-03-2009 01:17 | |
Название дисков | Falcon1 | Microsoft Windows 2000/XP | 6 | 07-06-2003 15:20 | |
записывание дисков | Guest | Microsoft Windows 2000/XP | 14 | 18-10-2002 14:21 |
|