PDA

Показать полную графическую версию : [решено] Данные о логических разделах (всего,свободно) без WMI и fsutil


lz57005
05-04-2016, 11:56
Из под Live WinPE запускается батник, одной из функций которого должен быть вывод информации о разделах (fixed, removable) исключив CD-привод.

Нужны 3 параметра буква, размер, свободно на диске (байт, мегабайт, но не гигабайт как показывает "diskpart list volume" или "psinfo -d") эти параметры будут использоваться в дальнейшем.

fsutil не подходит т.к. есть разделы FAT32
wmic не подходит т.к. его нет в WinPE

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

Опиум
05-04-2016, 12:01
у меня под WinPE так,
On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20


strComputer ="localhost"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
sOut = objItem.Name & " " & objItem.Size
mbSize = int (objItem.Size / 1024 /1024)
sOut = sOut & " " & "(" & mbSize & " MB) "
sOut = sOut & " " & "Free: " & objItem.FreeSpace
sOut = sOut & " " & objItem.Description
sOut = sOut & " " & "Type: " & objItem.DriveType
sOut = sOut & " " & "FS:" & objItem.FileSystem
sOut = sOut & " " & "MediaType: " & objItem.MediaType
WScript.Echo sOut
'end if
Next

СD и прочий хлам может отфильтровать по MediaType

lz57005
05-04-2016, 12:10
Опиум, Это на чем? меня CMD/BAT интересует...

Iska
05-04-2016, 12:53
Опиум, Это на чем? »
WSH (VBScript) + Wbem.

Опиум
07-04-2016, 09:14
Это на чем? »
Это vbscript
я его тоже из winpe запускаю батником) show_disk.cmd
cscript мой_этот_скрипт.vbs

lz57005
07-04-2016, 17:05
Опиум, не во всех WinPE есть WSH и WMI, а хотелось бы универсальности , может есть какой консольный менеджер разделов, который может выдать инфу о разделах...

Iska
07-04-2016, 17:21
lz57005, берёте C/C++, пишете код, линкуете статически с библиотеками и — вуаля.

lz57005
07-04-2016, 17:33
Iska, мог бы взять C/C++, вопросов бы не было...

Опиум
08-04-2016, 11:18
не во всех WinPE есть WSH и WMI, »
не буду спорить, не помню. Но в свой образ winpe я интегрировал все что было нужно.
https://msdn.microsoft.com/ru-ru/library/hh824926.aspx

lz57005
08-04-2016, 15:12
пришлось таки наваять простенькую утилиту которая банально выдает - букву, размер, свободно - логических разделов ненулевого размера (проверяет от C до Z).
Пример использования в батнике:

@echo off
for /f "tokens=1-3" %%i in ('lv') do (
echo Диск %%i: Размер: %%j Мб. Свободно: %%k Мб.
)
pause




© OSzone.net 2001-2012