- Windows Script Host - VBScript - Sistema de archivos - Modificar los atributos de un archivo -

Los atributos de los archivos de textos están consignados en flags (banderas).
Su modificación puede realizarse de dos formas: La eliminación de atributos puede lograrse con la negación logica (o el enlace con el valor logico invertido "NOT x") con el operador "AND", mientras que la asignación de atributos se realiza con el operador "OR".
En el ejemplo a continuación, se crea un "FileSystemObject" y con el metodo "FileExists( )", se comprueba si el archivo en cuestion existe. De existir, se creará una referencia al archivo en la variable "archivo" con el metodo "GetFile( )".
De no existir el archivo, el metodo "FileExists( )", con "ELSE" dirige la prueba a la edición del mensage correspondiente.
A continuación, se editará el valor de "Attributes". Para determinar los atributos en cuestión, se utilizará la función "HoleAttribute( )". A esta función se le otorgará la referencia del objeto como parametro.
La función determina los valores numericos de los atributos con el operador lógico "AND", devolviendolo como cadenas de caracteres al script.
Despues de editarse los atributos actuales, se anularan y se llamará nuevamente la función "HoleAttribute( )". A partir de la salida de esta función podrá apresiarse la ausencia de atributos. En el próximo paso se le consederán atributos y con la función "HoleAttribute( )", se determinaran nuevamente. La edición señalará los valores definidos.

' determinaratrubutos.vbs
' ================================================
Option Explicit
' declaracion de variables
Dim FSO, archivo, valoratributo
' definicion de constantes
Const nombrearchivo="c:\test\mytest.ini"
' crear objeto
Set FSO = CreateObject("Scripting.FileSystemObject")
' verificar la existencia del archivo
If FSO.FileExists(nombrearchivo) Then
' si, establecer conexión
Set archivo = FSO.GetFile(nombrearchivo)
WScript.Echo "Tamaño del archivo: " & archivo.Size & " Byte."
WScript.Echo "Tipo de archivo: " & archivo.type
WScript.Echo "Atributos del archivo: " & archivo.Attributes
WScript.Echo "Creado el " & archivo.DateCreated
WScript.Echo "Modificado el " & archivo.DateLastModified
WScript.Echo "Ultimo acceso el " & archivo.DateLastAccessed
valoratributo=HoleAttribute(archivo)
WScript.Echo "El archivo " & nombrearchivo & " tiene los atributos [" & _
valoratributo & "]"
' retiro atributos
archivo.Attributes = archivo.Attributes and not 0
archivo.Attributes = archivo.Attributes and not 1
archivo.Attributes = archivo.Attributes and not 2
archivo.Attributes = archivo.Attributes and not 4
archivo.Attributes = archivo.Attributes and not 32
archivo.Attributes = archivo.Attributes and not 64
archivo.Attributes = archivo.Attributes and not 128
valoratributo=HoleAttribute(archivo)
WScript.Echo "El archivo " & nombrearchivo & " tiene los atributos [" & _
valoratributo & "]"
valoratributo=""
' conseder atributos
archivo.Attributes = archivo.Attributes or 0
archivo.Attributes = archivo.Attributes or 1
archivo.Attributes = archivo.Attributes or 2
archivo.Attributes = archivo.Attributes or 4
archivo.Attributes = archivo.Attributes or 32
archivo.Attributes = archivo.Attributes or 64
archivo.Attributes = archivo.Attributes or 128
valoratributo=HoleAttribute(archivo)
WScript.Echo "El archivo " & nombrearchivo & " tiene los atributos [" & _
valoratributo & "]"
Else
WScript.Echo "Archivo " & nombrearchivo & " no fue encontrado"
End If

Private Function HoleAttribute(Handle)
' funcion auxiliar para determinar los atributos
' declaracion de variables
Dim salida
' flag normal
If archivo.attributes and 0 Then salida = salida & "Normal "
' flag de solo lectura
If archivo.attributes and 1 Then salida = salida & "solo lectura "
' flag oculto
If archivo.attributes and 2 Then salida = salida & "oculto "
' flag sistema
If archivo.attributes and 4 Then salida = salida & "sistema "
' flag de archivo
If archivo.attributes and 32 Then salida = salida & "archivo "
' flag enlace
If archivo.attributes and 64 Then salida = salida & "enlace "
' flag comprimido
If archivo.attributes and 128 Then salida = salida & "comprimido "
' devolver valores
HoleAttribute=Trim(salida)
End Function

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