none
Como obter tamanho total de disco usando comandos do DOS RRS feed

  • Pergunta

  • Pessoal, a idéia é fazer um script que obtenha o espaço total, livre e usado em cada partição. Tentei alguns comandos do DOS. O comando DIR retorna o espaço livre em uma partição especificada, mas eu preciso do espaço total. O único comando que vi que faz isso é o chdsk, mas como esse script irá executar de 5 em 5 minutos mais ou menos e este comando faz toda uma verificação no disco, este comando não me serve. Gostaria de saber se alguém tem uma idéia pra obtenção desse espaço total.

    Valeu desde já.
    quinta-feira, 5 de fevereiro de 2009 12:22

Respostas

  • Olá,


    tente isso, no CMD:

    wmic logicaldisk get name, size

    ou no PowerShell

    get-wmiobject win32_logicaldisk | ft name, {$_.size / 1Gb}


    []s,


    Vinicius Canto
    MVP Admin Frameworks
    http://viniciuscanto.blogspot.com

    Vinicius Canto MVP Admin Frameworks Blog: http://viniciuscanto.blogspot.com
    quarta-feira, 11 de fevereiro de 2009 01:35
    Moderador

Todas as Respostas

  • Bom dia amigão...

    Tenta isso aqui:

    Set objWMIService = GetObject("winmgmts:")
    Set objLogicalDisk = objWMIService.get("Win32_LogicalDisk.DeviceID='C:'")
    WScript.Echo objLogicalDisk.freespace & " Bytes."

    Abraço!
    segunda-feira, 9 de fevereiro de 2009 12:01
  • Com VBScript:
    1 strComputer="." 
    2  
    3 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
    4 Set colItems = objWMIService.ExecQuery("Select SystemName,DeviceID,Size,FreeSpace, DriveType from Win32_LogicalDisk WHERE DriveType=3",,48)   
    5  
    6
    7  
    8 wscript.echo "Computador - Unidade  Total   Livre   Utilizado"  
    9 For Each objItem in colItems  
    10     if err.number=0 then  
    11         qtdUtilizada=Replace(Round((objItem.Size - objItem.FreeSpace)/1024/1024/1024,2),",",".")  
    12         Wscript.echo "    " & objItem.SystemName & " - " &  objItem.DeviceID & _  
    13         vbtab & round((objItem.Size/1024/1024/1024),2) & "GB" &_  
    14         vbtab & round((objItem.FreeSpace/1024/1024/1024),2) & "GB" &_  
    15         vbtab & qtdUtilizada  
    16     end if  
    17     err.clear  
    18 Next  
    19  

    Não conheço nada que seja Nativo do DOS para fazer a mesma coisa.
    Fábio de Paula Junior
    terça-feira, 10 de fevereiro de 2009 13:19
    Moderador
  • Olá,


    tente isso, no CMD:

    wmic logicaldisk get name, size

    ou no PowerShell

    get-wmiobject win32_logicaldisk | ft name, {$_.size / 1Gb}


    []s,


    Vinicius Canto
    MVP Admin Frameworks
    http://viniciuscanto.blogspot.com

    Vinicius Canto MVP Admin Frameworks Blog: http://viniciuscanto.blogspot.com
    quarta-feira, 11 de fevereiro de 2009 01:35
    Moderador