Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Забанен


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

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


Не совсем ясно, что мешает использовать тот же diskpart, ведь вышеобозначенные операции все равно по сути требуют наличия прав администратора? Так, например, чтобы получить список дисков:
Код: Выделить весь код
echo list disk | diskpart | findstr /vrc:"\." | findstr [0-9]
Или размелов:
Код: Выделить весь код
echo list volume | diskpart | findstr /vrc:"\." | findstr [0-9]
Полученные данные прогнать через for и все.
Есть и альтернативные решения, по крайней мере относительно активного жесткого диска и его разделов.
typeperf
Код: Выделить весь код
@echo off
  setlocal&chcp 1251>nul
    for /f "tokens=2 delims=)(" %%i in (
      'typeperf -qx "\Физический диск" ^| findstr /rc:"\:"'
    ) do set "active=%%i"
    for %%i in (%active%) do (
      (echo:%%i|>nul findstr [0-9])&&(
        echo:Disk %%i
      )||(
        echo:Volume %%i
      )
    )
  endlocal&chcp 866>nul
exit /b
Реестр
Получить разделы активного жесткого диска можно через реестр.
Код: Выделить весь код
@echo off
  setlocal enabledelayedexpansion
    set "key=HKLM\SYSTEM\MountedDevices"
    for /f "tokens=1,3" %%i in (
      'reg query %key% ^| findstr /rc:"\?"'
    ) do (
      for /f "tokens=1,3" %%k in (
        'reg query %key% ^| 2^>nul findstr %%j ^| findstr /rc:"\:"'
      ) do (
        if "%%j" equ "%%l" set "drv=%%k"
        set "drv=!drv:\DosDevices\=!"
        echo !drv! %%i
      )
    )
  endlocal
exit /b
Или mountvol.
Получить разделы активного жесткого диска также можно через гибридную технику - CMD\JS.
Код: Выделить весь код
0</* :
@cscript /nologo /e:jscript "%~f0" %*&exit /b */0;
(function() {
  with (new ActiveXObject('Scripting.FileSystemObject')) {
    for (var e = new Enumerator(Drives); !e.atEnd(); e.moveNext()) {
      if (e.item().DriveType === 2) WScript.echo(e.item().Path);
    }
  }
}());
Есть и другие варианты и способы решения задачи, но перечислять их все довольно утомительно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:55, 18-12-2015 | #2