2. I contesti di esecuzione di VBSCRIPT
2.1. Introduction
Un programma vbscript non viene eseguito direttamente in Windows, ma all’interno di un contenitore che gli fornisce un contesto di esecuzione e una serie di oggetti a esso propri. Inoltre, il programma VBScript può utilizzare oggetti messi a sua disposizione dal sistema Windows, denominati oggetti ActiveX.
![]() |
In questo documento utilizzeremo due contenitori: Windows Scripting Host, comunemente denominato WSH, e il browser Internet Explorer, talvolta indicato di seguito come IE. Ne esistono molti altri. Ad esempio, le applicazioni MS-Office fungono da contenitori per un derivato di VB denominato VBA (Visual Basic for Applications). Esistono inoltre numerose applicazioni Windows che consentono ai propri utenti di superare i limiti del sistema operativo, permettendo loro di sviluppare programmi che si eseguono all’interno dell’applicazione stessa e che utilizzano gli oggetti propri di quest’ultima.
Il contenitore in cui viene eseguito il programma VBScript svolge un ruolo fondamentale:
- Gli oggetti messi a disposizione del programma VBScript dal contenitore variano da un contenitore all'altro. Ad esempio, WSH mette a disposizione di un programma VBS un oggetto denominato WScript che consente di accedere, ad esempio, alle condivisioni e alle stampanti di rete del computer host. IE, invece, mette a disposizione del programma VBS un oggetto denominato document che rappresenta l’intero documento HTML visualizzato. Il programma VBS potrà quindi operare su questo documento. Excel, dal canto suo, mette a disposizione di un programma VBA oggetti che rappresentano cartelle di lavoro, fogli di lavoro, grafici, ecc... in pratica tutti gli oggetti gestiti da Excel.
- Sebbene gli oggetti di un contenitore conferiscano tutta la loro potenza a un programma VBScript, talvolta possono limitarne alcuni ambiti. Pertanto, un programma VBScript eseguito nel browser IE non può accedere al disco del computer host, per motivi di sicurezza.
Pertanto, quando si parla di programmazione VBScript, è necessario specificare in quale contenitore viene eseguito il programma.
In Windows, VBScript non è l’unico linguaggio utilizzabile nei contenitori WSH o IE. È possibile, ad esempio, utilizzare JScript (=JavaScript), PerlScript (=Perl), Python, ... Molti di questi linguaggi sembrano, a prima vista, superiori a VBScript. Tuttavia, quest’ultimo presenta dei notevoli vantaggi:
- VB e le sue varianti VBSCRIPT e VBA sono molto diffuse sui computer Windows. Conoscere questo linguaggio sembra indispensabile.
- È più la presenza di oggetti utilizzabili da un programma che il linguaggio stesso a determinarne la potenza. Tuttavia, molti di questi oggetti sono forniti dai contenitori e non dai linguaggi stessi.
Uno svantaggio di VBSCRIPT è che non è portabile su un sistema diverso da Windows, ad esempio Unix. I suoi concorrenti, come JavaScript, Perl e Python, lo sono invece. Se si deve lavorare su sistemi eterogenei, può essere interessante, se non addirittura indispensabile, utilizzare lo stesso linguaggio sui diversi sistemi.
2.2. Il contenitore WSH
Il contenitore WSH (Windows Scripting Host) consente l’esecuzione, all’interno di Windows, di programmi scritti in vari linguaggi: vbscript, javascript, perlscript, python, ... Esiste uno standard da rispettare affinché un linguaggio possa essere utilizzato all’interno di WSH. Qualsiasi linguaggio che rispetti tale standard può essere eseguito all’interno di WSH. È ipotizzabile che l’elenco precedente dei linguaggi eseguibili in WSH possa ampliarsi. Un contenitore mette a disposizione dei programmi che esegue degli oggetti che ne determinano la vera potenza. Ciò tende ad appianare le differenze tra i linguaggi, poiché tutti utilizzano lo stesso insieme di oggetti. Utilizzare un linguaggio piuttosto che un altro può quindi diventare una semplice questione di gusto piuttosto che di prestazioni.
L'esecuzione di un programma in WSH avviene tramite due eseguibili: wscript.exe e cscript.exe. wscript.exe si trova normalmente nella directory di installazione di Windows, generalmente denominata %windir%:
C:\ >echo %windir%
C:\WINDOWS
C:\>dir c:\windows\wscript.exe
WSCRIPT EXE 123 280 19/09/01 11:54 wscript.exe
L'exécutable cscript.exe se trouve lui sous %windir%\command :
C:\>dir c:\windows\cscript.* /s
Répertoire de C:\WINDOWS\COMMAND
CSCRIPT EXE 102 450 26/06/01 17:49 cscript.exe
La «w» di wscript sta per windows e la «c» di cscript sta per console. Uno script può essere eseguito indifferentemente tramite wscript o cscript. La differenza sta nella modalità di visualizzazione dei messaggi sullo schermo:
- wscript li visualizza in una finestra
- cscript li visualizza direttamente sullo schermo
Ecco uno script coucou.vbs che visualizza coucou sullo schermo:
![]()
Apriamo una finestra DOS ed eseguiamolo in successione con wscript e cscript:

DOS>cscript coucou.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
coucou
Come si può vedere chiaramente sopra, la differenza tra le due modalità è evidente. In questo documento utilizzeremo quasi esclusivamente la modalità console cscript. Si tratta della modalità adatta alle cosiddette applicazioni "batch", ovvero applicazioni che non prevedono l'interazione dell'utente tramite tastiera. Si notino due punti nei risultati precedenti:
- Si è ipotizzato che i file eseguibili wscript.exe e cscript.exe si trovassero entrambi nella cartella “PATH” del computer, il che consente di avviarli semplicemente digitando i loro nomi. Se così non fosse, sarebbe stato necessario scrivere qui:
- Si noti che la versione di wsh utilizzata in questo esempio e nel resto del documento è la versione 5.6.
- Il file sorgente dello script ha il suffisso .vbs. Questo è il suffisso che identifica uno script vbscript, mentre uno script javascript è identificato dal suffisso .js.
Il programma cscript dispone di diverse opzioni di avvio, ottenibili eseguendo cscript senza argomenti:
L'argomento //nologo disattiva la visualizzazione del banner di wsh:
2.3. La struttura di uno script WSH
Abbiamo appena visto un primo script: coucou.vbs
![]()
Abbiamo indicato che il suffisso .vbs del file indicava uno script vbscript. Non è obbligatorio. Avremmo potuto inserire lo script in un file con suffisso .wsf nella seguente forma più complessa:

L'esecuzione di questo script produce il seguente risultato:
Uno script WSH può combinare più linguaggi:

L'esecuzione di questo script produce il seguente risultato:
Si ricorderanno i seguenti punti:
- Il contenitore WSH non è associato a un linguaggio specifico. Uno script wsh può combinare diversi linguaggi in un file con estensione .wsf
- Lo script è quindi racchiuso tra i tag <job id="..."> ... </job>
- All’interno dell’applicazione (=job), i linguaggi utilizzati dalle diverse porzioni di codice sono contrassegnati dai tag <script language="...."> .... </script>
- Questo linguaggio di marcatura ha un nome: XML, che sta per eXtended Markup Language. XML non definisce alcun tag, ma solo regole di disposizione dei tag. In questo caso, quindi, si dovrebbe affermare che il linguaggio di marcatura utilizzato in uno script WSH segue lo standard XML.
In seguito, utilizzeremo esclusivamente VBScript nei file .vbs.
2.4. L'oggetto WSCRIPT
Il contenitore WSH mette a disposizione degli script che esegue un oggetto denominato wscript. Un oggetto possiede proprietà e metodi:
![]() |
Un oggetto Obj possiede proprietà Pi che ne determinano lo stato. Pertanto, un oggetto thermomètre può avere una proprietà température. Questa proprietà rappresenta uno degli aspetti dello stato del termometro. Un altro potrebbe essere la temperatura massima Tmax che è in grado di sopportare.
L’oggetto Obj può disporre di metodi Mj che consentono ad agenti esterni di:
- conoscere il suo stato
- modificarne lo stato
Pertanto, il nostro termometro, se elettronico, potrebbe avere un metodo allumer che lo accende, un altro éteindre che lo spegne, e un altro ancora afficher che visualizza la temperatura di equilibrio una volta raggiunta. In termini di programmazione, un metodo è una funzione che può accettare argomenti e restituire risultati.
In VBScript, le proprietà Pi di un oggetto Obj sono indicate con Obj.Pi e i metodi Mj sono indicati con Obj.Mj. L’oggetto wscript di WSH è un oggetto importante per i metodi che mette a disposizione degli script. Il suo metodo echo, ad esempio, consente di visualizzare un messaggio. La sintassi di questo metodo è la seguente:
I valori degli argomenti argi vengono quindi visualizzati in una finestra (esecuzione tramite wscript) o sullo schermo (esecuzione tramite cscript con DOS).
2.5. Il contenitore Internet Explorer
Abbiamo scritto in precedenza che Internet Explorer può fungere da contenitore per uno script VBScript. Vediamolo con un semplice esempio. Di seguito è riportata una pagina HTML (HyperText Markup Language) denominata coucou2.htm che non contiene alcuno script VBScript.
21

Il suo caricamento diretto tramite Internet Explorer (Fichier/Ouvrir) produce i seguenti risultati:
![]() |
Il contenuto del file coucou2.htm ci mostra che HTML è un linguaggio di marcatura. Conoscere il linguaggio HTML significa conoscere questi tag. Il loro scopo principale è indicare al browser come visualizzare un documento. HTML non segue esattamente lo standard XML, ma se ne avvicina.
In coucou2.htm sono presenti due informazioni da rappresentare, contrassegnate con i numeri 1 e 2. Le abbiamo riportate anche nella visualizzazione che ne è stata realizzata. È stato il tag <title>...</title> a far sì che l’informazione 1 venisse inserita nella barra del titolo del browser, mentre il tag <body>..</body> ha fatto sì che l’informazione 2 venisse inserita nella parte del documento del browser.
Non approfondiremo ulteriormente lo studio del linguaggio HTML. Modifichiamo il file coucou2.htm inserendovi uno script VBScript e chiamiamolo ora coucou1.htm:

Lo script VBScript è stato inserito nel tag <head>...</head>. Avrebbe potuto essere inserito altrove. Visualizza «ciao» al caricamento iniziale della pagina. In questo caso, il browser deve essere Internet Explorer, poiché solo questo browser è, per impostazione predefinita, un contenitore per gli script VBScript. La visualizzazione ottenuta è quindi la seguente:

seguito dalla visualizzazione normale della pagina:

Lo script eseguito era il seguente:
![]()
Mentre il contenitore WSH metteva a disposizione dello script un oggetto denominato wscript che consentiva di effettuare visualizzazioni tramite il suo metodo echo, in questo caso IE mette a disposizione dello script un oggetto window che consente di effettuare visualizzazioni tramite il metodo alert. Pertanto, per visualizzare «ciao», si scrive wscript.echo «ciao» in WSH e window.alert «ciao» in IE. Si può dimostrare anche in questo caso che, in realtà, è possibile utilizzare più linguaggi all’interno del contenitore IE. Riprendiamo l’esempio già presentato in WSH all’interno di una pagina coucou3.htm:

Il caricamento di questa pagina tramite IE visualizza innanzitutto tre finestre informative:
![]() | ![]() | ![]() |
prima di visualizzare la pagina finale:

2.6. La guida di WSH
WSH include un sistema di guida che si trova solitamente nella cartella "C:\Program Files\Microsoft Windows Script\ScriptDocs". Per la versione 5.6 di WSH, il file della guida si chiama "SCRIPT56.CHM". È sufficiente fare doppio clic su questo file per accedere alla guida. Può essere utile creare un collegamento sul desktop.
Una volta avviato, si ottiene qualcosa di simile a quanto segue:

Qui si trova la guida del contenitore WSH, ma anche quella per i linguaggi VBScript e JavaScript. Si tratta di uno strumento indispensabile sia per i principianti che per i programmatori esperti. Esistono diversi modi per utilizzare questa guida:
- non si sa bene cosa si sta cercando. Si vuole semplicemente scoprire cosa viene proposto. In questo caso si può utilizzare la scheda Sommaire sopra indicata. Ad esempio, si può vedere cosa viene proposto per VBScript:

Nella guida di VBscript troverete numerose informazioni che non sono presenti in questo documento.
- È possibile cercare qualcosa di specifico, ad esempio come utilizzare la funzione msgbox di VBscript. In tal caso, utilizzare la scheda Rechercher:

La guida mostra tutte le voci correlate alla parola cercata. In genere, le prime voci proposte sono le più pertinenti. È il caso in questione, dove la prima voce proposta è quella giusta. È sufficiente fare doppio clic su di essa per visualizzare le informazioni relative a quella voce:






