Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/716: Рейтинг темы: голосов - 716, средняя оценка - 4.82
 Аватар для Mayonez
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874

Получить список смонтированных дисков

08.09.2012, 00:41. Показов 138429. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как получить список дисков в системе (то есть d:, c:, k: и т.д.) через коммандную строку? Нужно узнать какая буква принадлежит только что подключенной флешке или хотя бы список всех "букв"?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.09.2012, 00:41
Ответы с готовыми решениями:

Как получить список дисков удаленного компьютера?
Как получить список дисков удаленного компьютера находящегося домене имея логин /пароль админа? Заранее спасибо!

Список дисков
Доброго дня. wmic logicaldisk get description,name|Find "Removable Disk" Дает результат (например): Removable Disk E: ...

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

21
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
08.09.2012, 16:20
Отследить подключение флешки

Описание констант, в т.ч. "DriveType" здесь:
MSDN Win32_LogicalDisk class
1
 Аватар для Badger
94 / 94 / 4
Регистрация: 25.06.2012
Сообщений: 278
10.09.2012, 14:28
Лучший ответ Сообщение было отмечено как решение

Решение

Список всех смонтированных дисков в системе можно вывести так:
Bash
1
fsutil fsinfo drives
5
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.09.2012, 15:01
Чудеса переводов
Миниатюры
Получить список смонтированных дисков  
1
Эксперт HardwareЭксперт Windows
 Аватар для gecata
15907 / 7930 / 755
Регистрация: 03.01.2012
Сообщений: 32,863
10.09.2012, 15:16
Лучший ответ Сообщение было отмечено как решение

Решение

А если diskpart (listdisk или listvolume)?
3
 Аватар для Badger
94 / 94 / 4
Регистрация: 25.06.2012
Сообщений: 278
10.09.2012, 15:29
Цитата Сообщение от gecata Посмотреть сообщение
А если diskpart (listdisk или listvolume)?
Да тоже не плохая команда )) И даже повеселее, показывает подробную (относительно) информацию о разделах.
Только тогда поочередно в столбик:
Bash
1
2
3
diskpart
list
volume
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.09.2012, 15:37
DiskPart
http://technet.microsoft.com/r... s.10).aspx

Возможностей много. Но в автоматическом режиме запускать придется только через отдельно
созданный текстовичек с командами:
Bash
1
DiskPart /s Script.txt
Script.txt
Code
1
List Volume
А для простой задачи вывода списка дисков, ИМХО, сложновато - его еще и парсить придется (см. скрин).
Миниатюры
Получить список смонтированных дисков  
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.11.2012, 00:51
Лучший ответ Сообщение было отмечено как решение

Решение

Еще:

Bash
1
2
3
4
@Echo Off
For /F "Tokens=1,2 Delims==" %%i In ('WMIC LogicalDisk Get Name^,VolumeSerialNumber /Value^|Find "="') Do if %%i==Name echo %%j&& set /a Count +=1
echo Count of Drives: %count%
pause >nul
Миниатюры
Получить список смонтированных дисков  
5
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
28.02.2014, 15:32
Здравствуйте.
Не получается объединить две переменные и вывести в одну строку:
Bash
1
2
3
4
5
6
setlocal enabledelayedexpansion
set run=\PeDrivers\run.txt
For /F "Tokens=1,2 Delims==" %%i In ('WMIC LogicalDisk Get Name^,VolumeSerialNumber /Value^|Find "="') Do if %%i==Name (
echo %%j%run% >> 1.txt
)
*endlocal
1
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.02.2014, 17:39
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от sotik Посмотреть сообщение
Не получается объединить две переменные и вывести в одну строку



sotik, дело в том, что после буквы диска с двоеточием ещё "запрятан" символ "CR". Отсечь его можно так:

Bash
1
2
3
4
5
6
7
8
set run=\PeDrivers\run.txt
for /f "tokens=1,2 delims==:" %%i In ('
 WMIC LOGICALDISK GET Name^,VolumeSerialNumber /VALUE^|find "="
') do (
 if %%i==Name (
  echo %%j:%run%>>1.txt
 )
)
0
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
28.02.2014, 19:47
Просто подставить двоеточие?!
Не работает.
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.02.2014, 19:58
Не "просто подставить двоеточие", а добавить двоеточие в двух местах кода, как написано.
0
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
28.02.2014, 19:58
Обана...
Одно двоеточие не заметил...
Спасибо большое.
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
31.01.2016, 01:12
Гружусь с winpe, необходимо с него найти логический диск системы с пакетного файла..., получить путь...
т.е. есть в системе С D E F, пробежаться по ним, и например найти папку windows, и записать в переменную путь, по типу D:\windows

Можно конечно для одной машины загрузится, посмотреть на какие буквы диски подключились и все дела, но проблема в том, что на каждой машине, диски определяются по разному...

Как это сделать?
0
 Аватар для vavun
10592 / 5555 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
31.01.2016, 01:27
mostApi, Полезные BAT/CMD скрипты
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
31.01.2016, 01:27
Посмотрите как это сделано в скрипте: Проверка целостности системных файлов в среде PE

Добавлено через 15 секунд
vavun, =)
0
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
31.01.2016, 11:19
vavun, Dragokas, не нашел решения...

Windows Batch file
1
2
3
4
setlocal enabledelayedexpansion
For /F "Tokens=1,2 Delims==" %%i In ('WMIC LogicalDisk Get Name^,VolumeSerialNumber /Value^|Find "="') Do if %%i==Name (
echo %%j%run% >> 1.txt
)
- этот код как раз находит буквы локальных дисков, вот еще бы папку найти...

Добавлено через 1 час 13 минут
Цитата Сообщение от Badger Посмотреть сообщение
Список всех смонтированных дисков в системе можно вывести так:
Bash
1
fsutil fsinfo drives
- этот тоже отлично отрабатывает, причем без цикла..., проще некуда...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
31.01.2016, 14:55
Вы скрипт вообще смотрели. Там же сразу написано:
Windows Batch file
1
2
3
4
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:\Windows\system32\winver.exe" echo. ^
 & echo    Windows на диске %%i: && echo  └----------------------┘ & dir %%i:\users&set disk=%%i
)
Проверка происходит через файл-маркер.
1
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
06.05.2016, 11:51
А можно ли в списке выведенных дисков добавить описания дисков, чтобы понять кто есть жёсткий диск, кто флэшка, кто subst, кто сетевой?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.05.2016, 17:38
Mitek1977, через какой из предложенных в теме способов или Вам все равно?

Для WMI - это будет свойство DriveType:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Echo Off
SetLocal EnableExtensions
 
For /F "Tokens=1,2 Delims==" %%i In ('WMIC LogicalDisk Get Name^,VolumeSerialNumber^,DriveType /Value^|Find "="') Do (
  call :ShowDrive "%%i" %%j
  set /a Count +=1
)
echo Count of Drives: %count%
pause >nul
exit /B
 
:ShowDrive
  if "%~1"=="DriveType" (
    if "%2"=="0" set DT=Unknown
    if "%2"=="1" set DT=No Root Directory
    if "%2"=="2" set DT=Removable Disk
    if "%2"=="3" set DT=Local Disk
    if "%2"=="4" set DT=Network Drive
    if "%2"=="5" set DT=Compact Disc
    if "%2"=="6" set DT=RAM Disk
  )
  if "%~1"=="Name" echo Disk %2 - %DT%
exit /b
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2016, 17:38
Помогаю со студенческими работами здесь

Как получить список смонтированных систем?
Здравствуйте! Требуется получить информацию об одной из смонтированных файловых системах. Как получить для начала хотя бы список...

Поиск файла на внешних устройствах или как получить список всех смонтированных носителей
В общем есть задача найти файл test.txt в директории testdir на любом устройстве SD карта или USB устройство. На разных Android...

Получить список дисков
Есть функция DWORD WINAPI GetLogicalDrives(void) Делаю следующий вызов в событии Form1_Shown Drivers=GetLogicalDrives(); ...

Получить список жестких дисков
Всем доброго времени суток. Прошу не кидаться в меня гнилыми овощами и нецензурной бранью, я только учусь 😁 Пишу программу,...

Получить список физических дисков
Здравствуйте! Как можно получить список имен физических дисков в формате PhysicalDriveN, где N - номер диска?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru