Documentación VBS

Estructuras de control
Bucle FOR

I = 1
For I = 1 to 22
"Accion"
Next

Bucle FOR para arrays

For Each strSubkey In arrSubkeys
"Accion"
Next

Manejo de ficheros
Codigo común para ficheros

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim objfso
Dim objficherolog
Set objfso = CreateObject("Scripting.FileSystemObject")

Existencia de fichero

aux = objfso.FileExists("C:Windowssystem32driversetchosts")

Existencia de la unidad «c»

aux = objfso.DriveExists("c")

Existencia del directorio

aux = objfso.FolderExists("C:Windows")

Abrir Fichero

Set objFicheroLog = objfso.OpenTextFile( "ruta completa y nombre del log", ForAppending , True )

Borrar Carpeta

objfso.DeleteFolder "Ruta completa de la carpeta a borrar"

Borrar Archivo

objfso.DeleteFile "Ruta completa de la carpeta a borrar"

Copiar fichero

objfso.CopyFile "c:hola.txt","c:prueba"

Comprobarr si existe un fichero

if not objfso.FileExists(strDirectorioProgramas & "NovadigmRadskman.exe") then

Leer un Fichero , una linea una posicion del Array


Dim vector()
Do Until miFichero.AtEndOfStream
reDim Preserve vector(i)
vector(i) = mifichero.ReadLine
i = i + 1
Loop

Buscar en un Array


Dim cont
For cont = Lbound(del_mad) to UBound(del_mad)
If del_mad(cont) = Subred then
WScript.Echo "Encontrado"

Listar Software Instaldo en maquina local


Dim objfso
Dim objficherolog

Set objfso = CreateObject("Scripting.FileSystemObject")
Set objFicheroLog = objfso.OpenTextFile( "c:listado.log", 8, True )

Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
strComputer = "."
strKey = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
strEntry1a = "DisplayName"
strEntry1b = "QuietDisplayName"
strEntry2 = "InstallDate"
strEntry3 = "VersionMajor"
strEntry4 = "VersionMinor"
strEntry5 = "EstimatedSize"

Set objReg = GetObject("winmgmts://" & strComputer & _
"/root/default:StdRegProv")
objReg.EnumKey HKLM, strKey, arrSubkeys
WScript.Echo "Installed Applications" & VbCrLf
For Each strSubkey In arrSubkeys
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _
strEntry1a, strValue1)
If intRet1 <> 0 Then
objReg.GetStringValue HKLM, strKey & strSubkey, _
strEntry1b, strValue1
End If
If strValue1 <> "" Then
objFicheroLog.WriteLine VbCrLf & "Display Name: " & strValue1
End If

Next

Desinstalar Software


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product Where Name = 'Cadena localizada en listar software'")
For Each objSoftware in colSoftware
objSoftware.Uninstall()
Next

Instalar Software


Dim objWSHShell, objExec
Set objWSHShell = WScript.CreateObject("WScript.Shell")
On Error Resume Next
Set objExec = objWSHShell.Exec("Ruat completa del EXE y parametros")
' Espera a la correcta finalizacion del EXE
Do While objExec.Status = 0
WScript.Sleep 500
Loop
set WshShell = Nothing

Montar Unidades de Red

on error resume next
WshNetwork.RemoveNetworkDrive CONST_UNIDAD_DESCRIPTOR
WshNetwork.MapNetworkDrive NUEVA_UNIDAD, RECURSO_COMPARTIDO , false , USUARIO , PASSWORD

Trabajo con el registro


Dim RegShell
Set RegShell = WScript.CreateObject("WScript.Shell")
"Entrada de registro , se mantienen las comillas"
Dim strRuta
strRuta = "1"
Dim valor
valor = "1"
RegShell.RegWrite strRuta, valor ,"REG_DWORD"
Set RegShell = Nothing

Redirigir salida de un CMD

Codigo para redirigir la salida de un programa externo por consola a una variable de VB

Cada caracter sera añadido a la variable salida_cmd mientras no sea final de Stream.
Dim final As Boolean
final = True
Do While final
If Not oExec.StdOut.AtEndOfStream Then
salida_cmd = salida_cmd & oExec.StdOut.Read(1)
Else
final = False
'Exit Do
End If
Loop

Únete a la conversación

3 comentarios

    1. Buenas , la mala suerte es que no , soy un consultor de eso que tiene que solventar problemas sobre la marcha y uno fue hacer cosillas con VBS , así que no hay más.No se la vuelto a presentar la oportunidad de ampliar esto.

      Un saludo

  1. Excelente, muy descriptivo.

    Abusando, tendras alguna información para el manejo de formularios con VBS.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.