392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
1

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

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

Как получить список дисков в системе (то есть d:, c:, k: и т.д.) через коммандную строку? Нужно узнать какая буква принадлежит только что подключенной флешке или хотя бы список всех "букв"?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2012, 00:41
Ответы с готовыми решениями:

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

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

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

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

21
Эксперт WindowsАвтор FAQ
17829 / 7564 / 889
Регистрация: 25.12.2011
Сообщений: 11,314
Записей в блоге: 17
08.09.2012, 16:20 2
Отследить подключение флешки

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

Решение

Список всех смонтированных дисков в системе можно вывести так:
Bash
1
fsutil fsinfo drives
5
Эксперт WindowsАвтор FAQ
17829 / 7564 / 889
Регистрация: 25.12.2011
Сообщений: 11,314
Записей в блоге: 17
10.09.2012, 15:01 4
Чудеса переводов
Миниатюры
Получить список смонтированных дисков  
1
Модератор
Эксперт HardwareЭксперт Windows
14783 / 7654 / 709
Регистрация: 03.01.2012
Сообщений: 31,480
10.09.2012, 15:16 5
Лучший ответ Сообщение было отмечено как решение

Решение

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

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

Решение

Еще:

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 9
Здравствуйте.
Не получается объединить две переменные и вывести в одну строку:
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
3454 / 1992 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.02.2014, 17:39 10
Лучший ответ Сообщение было отмечено 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 11
Просто подставить двоеточие?!
Не работает.
0
3454 / 1992 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.02.2014, 19:58 12
Не "просто подставить двоеточие", а добавить двоеточие в двух местах кода, как написано.
0
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
28.02.2014, 19:58 13
Обана...
Одно двоеточие не заметил...
Спасибо большое.
0
7 / 5 / 0
Регистрация: 15.05.2015
Сообщений: 323
31.01.2016, 01:12 14
Гружусь с winpe, необходимо с него найти логический диск системы с пакетного файла..., получить путь...
т.е. есть в системе С D E F, пробежаться по ним, и например найти папку windows, и записать в переменную путь, по типу D:\windows

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

Как это сделать?
0
10562 / 5526 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
31.01.2016, 01:27 15
mostApi, Полезные BAT/CMD скрипты
0
Эксперт WindowsАвтор FAQ
17829 / 7564 / 889
Регистрация: 25.12.2011
Сообщений: 11,314
Записей в блоге: 17
31.01.2016, 01:27 16
Посмотрите как это сделано в скрипте: Проверка целостности системных файлов в среде PE

Добавлено через 15 секунд
vavun, =)
0
7 / 5 / 0
Регистрация: 15.05.2015
Сообщений: 323
31.01.2016, 11:19 17
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
17829 / 7564 / 889
Регистрация: 25.12.2011
Сообщений: 11,314
Записей в блоге: 17
31.01.2016, 14:55 18
Вы скрипт вообще смотрели. Там же сразу написано:
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 19
А можно ли в списке выведенных дисков добавить описания дисков, чтобы понять кто есть жёсткий диск, кто флэшка, кто subst, кто сетевой?
0
Эксперт WindowsАвтор FAQ
17829 / 7564 / 889
Регистрация: 25.12.2011
Сообщений: 11,314
Записей в блоге: 17
06.05.2016, 17:38 20
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2016, 17:38
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru