Un script VBS (Visual Basic Script) que obtiene todos los discos duros del equipo y devuelve por consola su espacio usado (en porcentaje). Permite pasarle como argumento la unidad o unidades de las que devolverá el espacio ocupado. En caso de no pasarle argumentos, devolverá todas las unidades. Extraerá la información mediante WMI, con Win32_LogicalDisk.
- Script VBS para obtener el espacio usado en las unidades de disco del equipo.
- Ejemplo de ejecución del script VBS que obtiene las unidades del equipo y su espacio usado.
Script VBS para obtener el espacio usado en las unidades de disco del equipo
El código fuente del script vbs completo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
' Obtener todos los discos duros del equipo y su espacio usado (en porcentaje) ' Permite pasarle como argumento la unidad o unidades de las que devolverá el espacio usado ' Si no se le pasan argumentos, devolverá todas las unidades option explicit on error resume next dim oWMI, discoActual, listaDiscos, numArgumentos dim parametros, i, espacioLibre, espacioTotal, espacioUsado ' Obtenemos el número de argumentos (pasados por parámetro en la línea de comandos) numArgumentos = Wscript.Arguments.Count ' Obtenemos los argumentos/parámetros (pasados por parámetro en la línea de comandos) set parametros = CreateObject("Scripting.Dictionary") for i = 0 to numArgumentos - 1 parametros.Add Wscript.Arguments(i), i next ' Obtenemos la información de los discos con WMI set oWMI = GetObject ("winmgmts:.rootcimv2") set listaDiscos = oWMI.ExecQuery ("Select * from Win32_LogicalDisk") ' Recorremos todos los discos obtenidos para mostrar su información ' Siempre que se hayan pasado por parámetro o bien no se haya pasado ningún parámetro for each discoActual in listaDiscos ' Si no se han pasado argumentos o si el argumento pasado ' coincide con el nombre de la unidad actual ' Se obtiene su espacio usado y se muestra por consola if numArgumentos = 0 or parametros.Exists(discoActual.Name) then ' Filtramos los discos duros (type 3), para no mostrar ' otro tipo de unidades de almacenamiento como pendrives if (discoActual.FreeSpace <> "") and (discoActual.DriveType = 3) then espacioLibre = discoActual.FreeSpace espacioTotal = discoActual.Size ' Obtenemos el porcentaje de espacio usado en base al espacio libre y el espacio total espacioUsado = round (100 - (espacioLibre / espacioTotal) * 100, 2) ' Mostramos el resultado por consola Wscript.StdOut.WriteLine discoActual.Name & " -> " & espacioUsado & "%" Wscript.StdOut.flush end if end if next WScript.Quit |
Ejemplo de ejecución del script VBS que obtiene las unidades del equipo y su espacio usado
Guardaremos el código anterior en un fichero de texto plano, con el nombre espacio_ocupado.vbs (por ejemplo). Para ejecutarlo y comprobar que funciona, abriremos una ventana de MS-DOS (Símbolo de sistema o cmd). Desde esta ventana, accederemos a la carpeta donde hayamos guardado el script con el comando:
|
1 |
cd nombre_carpeta |
Una vez en la carpeta del script, para ejecutarlo, introduciremos el siguiente comando:
|
1 |
cscript.exe /b espacio_ocupado.vbs |
El comando anterior ejecutará el script sin argumentos, por lo que mostrará todas las unidades y su espacio usado:

Si queremos obtener únicamente el espacio ocupado de una unidad, la añadiremos como argumento, por ejemplo, para obtener el espacio ocupado de la unidad C:, ejecutaremos el comando:
|
1 |
cscript.exe /b espacio_ocupado.vbs C: |
Devolverá únicamente la unidad C: y su espacio ocupado:

Y si queremos obtener el espacio ocupado de varias unidades, las añadiremos a la línea de comandos, separadas por espacios. Por ejemplo, para obtener el espacio ocupado de las unidades D: y G:, ejecutaremos:
|
1 |
cscript.exe /b espacio_ocupado.vbs D: G: |
