Introduction: VBS Tutorial - Basics

Ok so some people have been asking me where did i learn my vbs from .. i learned from various websites, like the w3schools , even know that is for web scripting you can still use it from plain vbs.

I learn it from websites you'll learn it from me =D

So lets get started ...

What is vbs?
VBScript is a Microsoft scripting language. -_- so being Microsoft they go and make it so it only works on IE. But as well as being a web script it is used for all kinds of things ...
for example on pic 2) (that's the second pic) That is take from the System 32 folder. Vbs can also be used to make programs .. but that's VB.NET .. uses most of the same coding though.

Please enjoy the tutorial .. and please comment and rate.
And please tell me if someone has beet me to making a vbs tutorial .. but i couldn't find one.
Other than cammel8 who seems to be really good with vbs scripting =P .. but i'm still gonna make the tutorial.

Step 1: Basics of Vbs

Ok so here are the basics .. stuff you should already know ...

You save the files as: something.vbs
It's not like a batch file it doesn't have a screen telling you information.
In a way it's much like javascript. But at the same time it's nothing like it.

to make a var you use dim
e.g .. dim iRule
now you would have a variable call iRule

now you can start to add things to you vars .. like:
iRule=msgbox("hello")
this would make a message box pop up saying hello. (pic 1)

Along with that you can add different buttons to the message box ..
here is all about message boxes: HERE
so many tutorials on them that i won't even bother to go into them.

Also with vars you can dim vars in an array:
dim iRule(3)
but that would turn out like this: (because 0 is included)

iRule(0)="var1"
iRule(1)="var2"
iRule(2)="var3"
iRule(3)="var4"

Using vars in the script..

You can use vars easily ..
you could have: (pic 2)


dim iRule
dim instructables

iRule="instructables"

instructables=msgbox("hello " & iRule)

Because of the & it says 'hello instructables' becuse the value of iRule is instructables.

Subs

You can also have subs:
A sub is a procedure that does NOT give a return value.

Sub iRule(arg1,arg2,arg3)
...Script...
End Sub

The arg 1,2,3 are the Arguments.

That about all of the basics .. enjoy them .. or keep reading for not so basics..

Step 2: Not So Basics of Vbs

I'm going to start this step with Functions... because i always find them annoying .. even though they are quite easy =P

functions in vbs are easy.. ish .. they can get confusing..
Lets start with an easy function: (pic 1)


Function times(x,y)
times = x * y
End Function

Dim result
dim var1

result = times(10,10)

var1=msgbox(result)


This would give you 100
let me explain ....
you told it to times 10 by 10..
result = time(10,10)
this went to the function times

x is now 10 and y is now 10
so: x * y return value with answer.



For, Next, Do, Loop

The For , Next loop can be used to repeat things, for example:


for var = 0 to 5
msgbox(var)
next
msgbox("Finish")


This will pop up a message box counting 0,1,2,3,4,5 then it will say 'Finish'
REMEMBER in vbs 0 nearly always counts!
so that code would repeat a command 6 times e.g:

for var = 0 to 5
msgbox("hello")
next
msgbox("Finish")

the message 'hello' would come up 6 times. on the 7th time it will say Finish.

If you add: step ... to the end of for var = 0 to 5 e.g
for var = 0 to 5 step 5
that will make it jump 5 each time.. in this case the message will only show twice because 5 is the limit.
You can also step down as well .. e.g. step -5 would count down 5 each time.

Do, Loop
the do loop is used to loop a piece of code over and over and over ect. mainly used for viruses =P

but you can use them to help you .. say if you wanted to keep saying a message until a certain option is picked. You can always add a Until on the do or on the loop part. e.g.
do until var=5
but in the code you must make it add 1 or more to the var .. or it will keep on looping.

You can also use do from thing like: do while var=10
this will only do the commands if var is equal to 10!

That's all for the Not So Basics of vbs.

Step 3: The If's and Then's

Theses are quite easy to get but i decided they needed a page in case someone didn't know what they did.
But really they are very easy : e.g

if instructables=TheBest then msgbox ("yes it is!")

But that is not hard as we all know that instructables is the best. =P
...now for multi-lined ifs and thens ... (scary music)

but there not that scary you just add a end if at the end of the is statement. e.g

if instructables=TheBest then
msgbox ("yes it is!")
msgbox ("really it is!")
end if

this will pop up with 2 messages one after the other, 'yes it is!' and 'really it is!'
the the end if statement closes it.



the else and elseif
These are not hard either ..

the else is just for when you want one option for one thing and another for the rest.. e.g

if var=1 then
msgbox ("var is 1")
else
msgbox ("var is not 1")
end if

so if var doesn't = 1 it will always say 'var is not 1'

the elseif is also very similar ...e.g

if var=1 then
msgbox ("var is 1")

elseif var=2 then
msgbox ("var is 2 ")

else
msgbox ("var is not 1 or 2")
end if

this would make it so if var was 1 or 2 it would say var is 1/2 ... but if it's not then it will say var is not 1 or 2.

Step 4: Case's

cases are simple and can make you life much easier .. e.g of simple case:


Dim FavCol
FavCol = "red"
Select Case FavCol
Case "Black"
msgbox("your Fav Colour is Black")
Case "red"
msgbox("your Fav Colour is Red")
Case "Yellow"
msgbox("your Fav Colour is Yellow")
Case Else
msgbox("Now your just confusing")
End Select

this simple script will select options from a list in this case it will tell you your fav colour is red.

Let me go into it in a bit more detail ...

you get your var : Dim var, var="iRule" var can quel anything
then you ask the vbs to look through a list to find your var ...
if it cannot find it it will go to the: Case Else which is just like the if, else command.
if it finds your var it will execute

Step 5: Passing Vars

If you look around on the internet you'll find that lots of peopl want to know how to pass vars between batch to vbs and vbs to batch...
I'll show you the best way i found:

Since this is a vbs tutorial I'll show you how to transfer vars from vbs to batch first ...

VBS TO BATCH

This is the vbs:


dim a

a=InputBox("Type in somthing:","Var")

dim WshShell
set WshShell=Wscript.Createobject("Wscript.shell")
wshshell.run "test.bat " & a

This will ask you to type in a var then it will call test.bat passing the var you typed in.
a = what you typed in.

here is the batch:

@echo off

echo %1

pause
exit

this will write the var that you typed into the vbs..
Simple...

for multiple var just add:
the vbs: wshshell.run "test.bat " & a & b & var3 ect .. remember to set them a value
the batch: echo %1 %2 %3 ect..

BATCH TO VBS

the batch:

@echo off

set var=hello
wscript test.vbs %var%

this will sent 'hello' to test.vbs

the vbs:

dim ArgObj, a
Set fso = CreateObject("Scripting.FileSystemObject")
Set ArgObj = WScript.Arguments
a = ArgObj(0)

msgbox(a)

this will display 'hello' in the message box.

for multiple vars for batch to vbs easily add another var e.g
the batch: wscript test.vbs %var% %var2%
the vbs:

dim ArgObj, a, b
Set fso = CreateObject("Scripting.FileSystemObject")
Set ArgObj = WScript.Arguments
a = ArgObj(0)
b = ArgObj(1)
msgbox(a)
msgbox(b)

REMEMBER 0 counts

If you have any problems with these please pm or comment.