- Windows Script Host - VBScript - Sistema de archivos - Mostrar el espacio de memoria disponible -

La indagación del espacio ocupado en los medios de memoria está prevista en el componente "Scripting Runtime" con el objeto "Drive".
Este objeto cuenta con el atributo "TotalSize" (capacidad total), "FreeSpace" (espacio libre) y "AvailableSpace" (espacio disponible). Estas informaciones se expresarán en Bytes.
El ejemplo a continuación, demuestra el cálculo del espacio disponible. A continuación se creará el "FileSystemObject" con "CreateObject( )", lo que se guardará en la variable "FSO".
De ser positiva la comprobación de la existencia de la unidad, se creará una referencia al objeto "Drive" con el metodo "GetDrive( )", lo que se guardará en la variable "unidad".
Como ultima prueba, se determinará la disponibilidad de la unidad con "IsReady".
De ser positivas todas las comprobaciones, se determinará el espacio total (con el atributo "TotalSpace") y el espacio libre disponible (con el atributo "FreeSpace") de la unidad. El espacio ocupado en la unidad se determinará con estos dos valores.
De ser negativa la comprobación del atributo "IsReady" se le asignará el valor 0 a la variable "memoria".
En la siguiente consulta "If", se comprobará esta variable para poder efectuar el calculo. Si la variable tiene el valor 0, se editará un mensaje de error, de lo contrario se editarán los datos en cuestion.
Para editar adecuadamente los datos, el script hace uso de la rutina "calculomemoria( )", la cual comprueba el tamaño de los datos para formatear los datos en la dimensión correcta.

' espaciomemoria.vbs
' ================================================
Option Explicit
' declaracion de variables
Dim FSO, unidad
Dim memoria, memoriaocupada, espaciolibre
' declarar constante
Const nombreunidad="C:"
' referenciar a objeto
Set FSO = CreateObject("Scripting.FileSystemObject")
' existe la unidad
If FSO.DriveExists("C:") Then
' establecer la conexión
Set unidad = FSO.GetDrive(nombreunidad)
' la unidad esta disponible
If unidad.IsReady Then
' espacio libre
espaciolibre = unidad.FreeSpace
' espacio total
memoria=unidad.TotalSize
' calcular el espacio ocupado
memoriaocupada=memoria-espaciolibre
Else
' si no esta disponible la unidad, memoria=0
memoria=0
End If
' cuando memoria mayor que 0
If memoria>0 Then
' Bytes
If memoria<1024 Then
WScript.Echo " La unidad " & nombreunidad & _
" contiene :" & vbcrlf & _
" Total de memoria : " & calculomemoria(memoria) & vbcrlf & _
" Memoria ocupada : " & calculomemoria(memoriaocupada) & _
vbcrlf & " Memoria libre : " & _
calculomemoria(espaciolibre)
End If
' Kilobytes
If memoria<1024^2 Then
WScript.Echo " La unidad " & nombreunidad & _
" contiene :" & vbcrlf & _
" Total de memoria : " & calculomemoria(memoria) & vbcrlf & _
" Memoria ocupada : " & calculomemoria(memoriaocupada) & _
vbcrlf & " Memoria libre : " & _
calculomemoria(espaciolibre)
End If
' Megabytes
If memoria<1024^3 Then
WScript.Echo " La unidad " & nombreunidad & _
" contiene :" & vbcrlf & _
" Total de memoria : " & calculomemoria(memoria) & vbcrlf & _
" Memoria ocupada : " & calculomemoria(memoriaocupada) & _
vbcrlf & " Memoria libre : " & _
calculomemoria(espaciolibre) & " Megabytes"
Else
' por demas
WScript.Echo " La unidad " & nombreunidad & _
" contiene :" & vbcrlf & _
" Total de memoria : " & calculomemoria(memoria) & vbcrlf & _
" Memoria ocupada : " & calculomemoria(memoriaocupada) & _
vbcrlf & " Memoria libre : " & _
calculomemoria(espaciolibre)
End If
Else
Wscript.Echo "La unidad " & unidad & " no esta disponible."
End If
Else
WScript.Echo "La unidad " & unidad & " no existe."
End If

Function calculomemoria(RAM)
' calculo de bytes en otras medidas
' las cifras se preveen con 4 lugares tras la coma
If RAM<1024 Then calculomemoria=FormatNumber(RAM/1024,4) & _
" Kilobytes"
If RAM<1024^3 Then
calculomemoria=FormatNumber(RAM/1024^2,4) & " Megabytes"
Else
calculomemoria=FormatNumber(RAM/1024^3,4) & " Gigabytes"
End If
End Function

previo
Imprimir!
Ultima actualisación: Tue, 24 ▪ May ▪ 2011
próximo