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

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

Ответить
Настройки темы
CMD/BAT - [решено] Составление списка существуюих дисков + отсев дисков не имеющих ФС

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


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

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


Здравствуйте, столкнулся с такой проблемой: раньше я использовал вот такой вот скрипт для поиска файла с именем 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
но если в компьютере присутствует картридер, то скрипт после обращения к букве диска картридера выдает окно ошибки:

В связи с этим я решил немного поправить скрипт. Суть такая: вместо перебора букв дисков, я хотел использовать только те диски, где существует ФС. Для этого я воспользовался командой:
Код: Выделить весь код
for /f "skip=1 tokens=1,2,*" %%i in ('wmic logicaldisk get caption^,filesystem') do ...
но отсеять диски по ФС у меня так и не получилось. Прошу, помогите разобраться в следующих вопросах:

1) Что, собственно, нужно дописать в скрипт, чтобы отсеять эти диски?
2) Каким способом передать список дисков (с ФС) в функцию поиска файла?

Возможно есть более рациональный способ нежели использование "wmic logicaldisk get caption,filesystem" или возможность отсеять диски не по ФС. Если у вас есть идеи по этому поводу, поделитесь ими.

Отправлено: 23:02, 28-04-2010

 

Пользователь


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

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


Не понял который пост является решением и как его применить. Попробовал в AutoUnattend.xml pass="specialize" заменить первую строку второй.
Код: Выделить весь код
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:\rootmark SETX DVD %i: -m
FOR /f "skip=1 tokens=1" %%i in ('wmic.exe logicaldisk get caption^,filesystem ^| find /v /i "          "') do if exist %%i\rootmark setx DVD %%i -m
Результат: Вместо буквы диска получил "C:\Windiws\system32\". Устанавливаю Windows 7 из USB CardReader "Kingston MobileLite G2" из SDHC карточки, а microSD - пустая, то есть на любом компьютере имею пустой кардридер.

Отправлено: 10:57, 28-05-2011 | #11



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

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


Ветеран


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

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


Scratch56,
Код: Выделить весь код
@echo off
setlocal

set "wmic=wmic logicaldisk get name,filesystem"

for /f "skip=1 tokens=1,2" %%i in (' "%wmic%" ') do call:set %%j %%i
for /f "tokens=2 delims=_=" %%i in (' set disk_ ') do echo %%i
goto:eof

:set
set "disk_%1=%2"

Отправлено: 15:11, 28-05-2011 | #12


Ветеран


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

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


Scratch56, есть ли уверенность в работоспособности «wmic.exe» на этапе установки?

Отправлено: 17:19, 28-05-2011 | #13


in job


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

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


Цитата Iska:
Scratch56, есть ли уверенность в работоспособности «wmic.exe» на этапе установки? »
ни один скрипт из этой темы на основе "wmic.exe" не работает на этапе Прохода 4 specialize... Проверено лично... Так что не мучайтесь...

Нашел 2 решения:
1. отбор дисков с файловой системой CDFS
Код: Выделить весь код
For /F "tokens=3-5 delims= " %%i In ('cmd /c echo list volume ^| diskpart') Do If %%k==CDFS If Exist %%i:\DISKROOT.TXT SETX CDROM %%i: /M
2. отбор дисков с меткой WIN7-X86-32
Код: Выделить весь код
For /F "tokens=3,4 delims= " %%i In ('cmd /c echo list volume ^| diskpart') Do If %%j==WIN7-X86-32 If Exist %%i:\DISKROOT.TXT SETX CDROM %%i: /M
Все 2 варианта работают на этапе Прохода 4 specialize... только в этом случае двойной процент %% необходимо заменить одинарным %

-------
Самое страшное в мечтах то, что они иногда... сбываются


Последний раз редактировалось Dmitry_K, 13-10-2011 в 15:43. Причина: уточнение

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:01, 21-09-2011 | #14


Пользователь


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

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


Dmitry_K,
Добрый день, а допустим если мне нужно выполнять установку и СД и с ФЛЕШ носителей, при условии что метки дисков могут быть разные. И файловая система тоже соответственно.

Отправлено: 15:09, 19-02-2012 | #15


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


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

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


Вот еще вариант с отключение и последующим включением уведомления об ошибке.
Код: Выделить весь код
Reg Add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /v "ErrorMode" /t REG_DWORD /d "0x00000002" /f 
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:\Diskroot.txt set Diskroot=%%i: 
Reg Add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /v "ErrorMode" /t REG_DWORD /d "0x00000000" /f

Последний раз редактировалось iChip, 19-09-2012 в 15:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:51, 19-09-2012 | #16


Старожил


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

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


Foreigner, А как Ваш многострочный вариант вставить в файл ответов?

Отправлено: 07:31, 23-12-2012 | #17



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - [решено] Не удалось подключиться к службе логических дисков", "Диспетчер логических дисков(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




 
Переход