Tutorial: Programación VBScript Básica.

Estado
Cerrado para nuevas respuestas

vitrox2007

.::Omnipresente::.
Miembro
Hola Amigos de Trucoswindows. ¿todo bien?.

Inviertiendo mis conocimientos en cosas buenas, como ayudar a la gente del foro, y a los aprendices de la programación, me he dispuesto a escribir un manual de Visual Basic Script totalmente básico para los que se quieren meter en este viaje.

La idea se me ocurrió, cuando vi algúnos post de gente preguntando sobre esto, aunque este lenguaje esta obsoleto, puede que les sirva a algúnos para hacer alguans automatizaciones en el sistema.

Bueno, el VBS, o más comunmente llamado VBScript, es un lenguaje que viene integrado a los sistemas operativos de Microsoft, además del BATCH, solo que con VBS intentaron extender un poco el lenguaje ya viejo y ponerle gráfica, aunque con VBS no se pueden hacer grandes cosas, se puede utilizar para hacer automatizaciones como la eliminación de carpetas/archivos temporales, o inicios automáticos de programas.

Para programar en VBS, se nesecita un simple editor ASCII, como ser Bloc de Notas para Windows, o EDIT de MSDOS.

Una vez que terminemos de escribir nuestro programa, lo deberemos guardar con la extención .vbs, y ya será ejecutable en cualquier sistema operativo Windows.

Como siempre, antes de comenzar a programar en cualquier lenguaje, hay que tener claro algúnos criterios como lo que es una "variable".

Una variable, en pocas palabras es un lugar de memoria reservado, para guardar algú tipo de información, ya sea String (texto), números, valores booleanos (1,0), etc.

Para declarar una variable en VBS se utiliza SET, seguido del nombre de la variable:

Insertar CODE, HTML o PHP:
SET var_1
Hay hemos declarado una var_1, llamada "variable.

También es posible declarar y definir una variable, como se ve en el siguiente ejemplo:

Insertar CODE, HTML o PHP:
SET var_1="Hola Amigos"
Hay ya hemos puesto, que es lo que debe guardar en memoria vbs, para usarlo posteriormente.

Comenzaremos viendo el ejemplo más clásico en el mundo de los programadores, el clásico y conocido "Hola Mundo", el código que emplearemos para este ejemplo es el siguiente:

Insertar CODE, HTML o PHP:
msgbox "Hola Mundo"
La devolución de este código, daría en Windows lo siguiente:

VBScriptBasica1-1.png


Este ya es un programa hecho en VBS, que muestra un simple mensaje en pantalla.

El compilador de VBS, cuando compila un programa y lo ejecuta (porque estos programas nunca están compilados, el Windows los compila y los ejecuta al ser iniciados), lo lee como una carta, es decir, primer lee la linea 0, luego la 1, 2, 3, y así sucesivamente, cosa que no es cierta en lenguajes como C, que primeramente el compilador ejecuta las lineas del main, y luego sigue con los Includes, etc..

VBS, al igual que otros lenguajes de programación visuales permiten poner títulos a las ventanas como así botones, como "Aceptar", "Continuar", "Cancelar", etc.

En el siguiente ejemplo, veremos un mensaje con título y botones de selección.

Insertar CODE, HTML o PHP:
msgbox "Seleccione si desea Continuar",3,"Opciones"
La visualización en pantalla sería:

VBScriptBasica2-1.png


Luego del texto a mostrar en pantalla, se pone una ","(coma), y de acuerdo a los número que pongamos hay de 1 al 25, el modo de muestra de los botones cambiará, luego ponemos otra ","(coma), y el título entre comillas de la ventana, Pruébalo !

Utilizar el lenguaje VBS, de Microsoft, es el más fácil del mundo, y luego de este, le sigue Visual Basic, que es como VBS, pero mucho0 más avanzado y con más opciones, la sintaxis es más o menos la misma, y el comando msgbox, existe en Visual Basic 6.0 y anteriores.

Otro factor importante de este lenguaje, y que viene muchas veces integrados en instaladores como extenciones, es la de la gestión de ficheros que se puede hacer con VBS.

Con este lenguaje, se puede hacer todo lo relacionado con esto, renombrar, copiar, mover, crear, iniciar, etc.

Veremos más detalladamente como utilizar estas funciones:
- Copiando un Fichero:

Bueno, copar, mover, etc, en vbs, es muy simple, todas utilizan la misma sintaxis, solo que un comando distinto.

Nada mejor que un buen ejemplo de esto para entender mejor:

Insertar CODE, HTML o PHP:
Set PV1 = CreateObject("Scripting.FileSystemObject")

PV1.copyfile "File.DOC","C:\Max.DOC"
Con este programa, estaremos copiano el fichero "File.Doc" a la ubicación "C:\", y también le estaremos cambiando el nombre, expliquemos paso a paso para no meternos en confusiones.

Set declara la variable como vimos antes, en VBS, antes de empezar a hacer algo, hay que declarar una función la cual aloje la librería correspondiente para los procesos que se harán en un futuro.

Como en C++, antes de imprimir datos en pantalla con "cout", se nesecita declarar la librería "iostream.h" (si es que recuerdo bien, jeje), en vbs, antes de hacer cualquier tipo de gestión con ficheros, hay que declarar su librería (función), y guardarla en una variable, esto del final, de guardar la variable, es solo en vbs, en C++ no había que guardar dicha función.

Ok, sigamos, con SET, declaramos una variable, luego de SET se deja un espacio y se le dice como va a llamarse la variable, en este caso "PV1", luego, se pone el signo = que es el encargado de devolver o decir a que es igual esa variable, y se declara la librería o función: Scripting.FileSystemObject, esta es puesta entre parentesis y con comillas, ya que anteriormente hay que crear dicho objeto con CreateObject, porque si no estaría esto, simplemente VBS, guardaría la variable, y dejaría guardada en memoria todo el dato, en cambio con CreateObject, se carga la librería para que todo el programa la vea.

Luego se llama a la variable con el "."(punto), luego de su nomber: PV1., y se utiliza el parametro copyfile que copia un archivo, primero se dice cual es el archivo a copiar y luego su ubicación con su nuevo nombre.

- Crear Carpetas:

En MSDOS (BATCH), para crear una carpeta su utilizaba "md", ahora en vbs, se utiliza createfolder, la sintaxis es igual que antes, solo que al llamar a la variable P1, se dice que se hará uso de la función Scripting.FileSystemObject, en su extención createfolder (en inglés crear carpeta).

Veamos un ejemplo:

Insertar CODE, HTML o PHP:
Set PV2 = CreateObject("Scripting.FileSystemObject")

PV2.createfolder "C:\SiS"
Con este ejemplo, se crea una carpeta llamada "SIS" en la unidad C:\, la sintaxis para todos los códigos siguientes es igual, solo que cambiando lo que está al lado de la llamada a la variable en cuestión, ya sea P1, P2, ETC:

- Crear Archivo:

Insertar CODE, HTML o PHP:
Set PV3 = CreateObject("Scripting.FileSystemObject")

PV3.createtextfile "C:\Windows\Win98.Com"
- Borrar Archivos:

Insertar CODE, HTML o PHP:
Set PV4 = CreateObject("Scripting.FileSystemObject")

PV4.deletefile "C:\Command.com"
- Borrar Carpetas:

Insertar CODE, HTML o PHP:
Set PV5 = CreateObject("Scripting.FileSystemObject")

PV5.deletefolder "gato"
- Mover Archivos:
Insertar CODE, HTML o PHP:
Set PV6 = CreateObject("Scripting.FileSystemObject")

PV6.MoveFile "File.VB","File.VBS"
- Abrir Archivos:

Insertar CODE, HTML o PHP:
Set PV7 = CreateObject("WScript.Shell")

PV7.Run "C:\pe.txt"
La sintaxis es exactamente igual para todos los ejemplos.

Otro factor importante, que todo programa VBS, debe tener como cabecera, es el famoso y cuestionado "On Error Resume Next" de Microsoft.

Con esto como cabecera del archivo, cualquier error que se desenlace durante la ejecución, no retomará aviso al usuario, y será omitido.

- Espero que les guste mis amigos del foro, y que todos los nuevos en esto de los lenguajes de programación de Microsoft, queden satisfechos. :confused:

saludos, vitrox.
 

FranGK

Roedor de Haches
Miembro
Buenas vitrox, esta bien el tuto.

Una pregunta:

¿Se puede agregar un archivo al registro desde vbs?, y de ser así ¿somo seria?

venga un saludo
 

vitrox2007

.::Omnipresente::.
Miembro
Hola amigo.

Si es posible, gracias a RegWrite .

El código sería así:
Insertar CODE, HTML o PHP:
RegeditCrear()

Sub RegeditCrear()

Dim Rege

Set Rege = WScript.CreateObject("WScript.Shell")

Rege.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\pru eba","datoss"

end Sub
Como tu ya estás metido en el mundo de los batch, no hace falta que te explique como funcionan las lineas , aunque cualquier cosa preguntas.

saludos, vitrox.
 

rob1104

Super Moderador
Super Moderador
Todo aporte es bien recibido, gracias vitrox, lo paso a tutoriales. Tengan mucho cuidad que Visual Basic Script es muy peligroso, ya saben a lo que me refiero ...

Para manejar el registro es relativamente fácil en VBS, algo mas o menos asi:
Insertar CODE, HTML o PHP:
'Variable de objeto

Dim MiObjeto As Object

'Creamos el objeto

Set MiObjeto = CreateObject("Wscript.Shell")

'Lo usamos, en este caso leemos una clave y mostramos el valor

MsgBox MiObjeto.RegRead("")

MiObjeto.RegDelete "RamaDelRegistro que vamos a borrar"

MiObjeto.RegWrite "RamaDelRegistro que vamos a escribir","Valor","Tipo De Dato"

'Eliminamos la variable

Set MiObjeto = Nothing
 

FranGK

Roedor de Haches
Miembro
jejeje nunca había programado nada especial en vbs, tan solo esto:

Insertar CODE, HTML o PHP:
Mystring=(80000000) * * *--->Se guarda en un archivo .VBE
(Espero no haberme pasado de ceros :confused:)

Que sino recuerdo mal era para liberar la memoria cuando estaba saturada..

Me ha gustado el aporte jeje, algún dia me hare un "mini-programilla" en vbs y ya lo pondre por aquí..

Espero algún ejemplo mas !

un saludoo

PD:Ya esta el "mini-programilla", aunque la idea es del que puso el post jeje

¿Se puede usar goto en vbs?Lo intente usar pero nada, me saltaban errores.

Si se puede un ejemplillo estaría mb

otro saludo
 

SiverNet

Nuevo Miembro
Miembro
hola Vitrox gracias por poner este tutorial bien explicado.

en verdad a mi y a muchos nos servira para dar nuestros primeros pasos en esto que me parece muy interesante.

saludos
 

vitrox2007

.::Omnipresente::.
Miembro
Muchas gracias por el apoyo compañero, aunque cualquier duda o inquietud, un post me alegra la vida, porque ayudar es ayudarte.

saludos, vitrox.
 
Estado
Cerrado para nuevas respuestas
Arriba Pie