Windows Script File (WSF)

XML formateret WSH script.

En Windows Script File (WSF) er en XML formateret tekstfil. Elementer og deres indbyrdes hieraki er hér kort nævnt.

Filens første linje bør være:

<?xml version = "1.0" encoding = "utf–8"?>

Filen bør i editoren gemmes som en UTF–8 tekstfil

Hieraki

<package>
 <job>
  <runtime>
   <description>
   </description>
   <named>
   </named>
   <example>
   </example>
  </runtime>
  <reference />
  <object />
  <script>
  </script>
 </job>
</package>

Eksempel

Meget enkelt eksempel:

<?xml version = "1.0" encoding = "utf-8"?>

<package id = "pkgBasic">
 <job id = "jobBasic">
  <runtime>
   <description>
Language   : Windows Script File (WSF)
FileName   : BasicExample.wsf
Author     : Niels Grove-Rasmussen (NGR)
CreateDate : 2005-03-21
Description: Basic scripting in a Windows Script File (wsf)
Arguments  : none
Usage      : BasicExample.wsf
Example    : cscript BasicExample.wsf
   </description>
   <example>
BasicExample.wsf
   </example>
  </runtime>
		
  <script language = "vbscript">
  <![CDATA[
Option Explicit
	
WScript.Echo ":: Hello World from VBScript"
  ]]>
  </script>
		
  <script language = "jscript">
  <![CDATA[
WScript.Echo( ":: Hello World from JScript" );
  ]]>
  </script>
		
  <script language = "perlscript">
  <![CDATA[
# use strict;

print ":: Hello World from Perl\n";
$WScript->Echo( ":: Hello World from Perl using WSH" );
  ]]>
  </script>
 </job>
</package>

Resultat ved kommandoen „cscript.exe BasicExample.wsf“:

Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

:: Hello World from VBScript
:: Hello World from JScript
:: Hello World from Perl
:: Hello World from Perl using WSH

<description>

<example>

<job>

Syntaks:

<job [id = JobID] [prompt = "flag"]>
job kode
</job>

Argumenter:

id kan gives en streng, som er jobbets reference. Dermed kan flere jobs implementeres i én wsf–fil. Det enkelte job aktiveres med argumentet //job: til wscript.exe eller cscript.exe.
prompt kan gives en boolsk værdi af enten „yes“ eller „no“. Argumentet er ikke beskrevet i Microsoft dokumentationen, men brugt andre steder, så her mangler jeg lidt.

Fejlhåndtering i en wsf–fil sker med elementet <?job?>.
Syntaks:

<?job error = "flag" debug = "flag" ?>

Argumenter:

error kan gives en boolsk værdi. Default er False. Argumentet bestemmer om fejlmeddelelser fra syntaks eller afvikling skal vises.
debug kan gives en boolsk værdi. Default er False. Argumentet bestemmer om scriptet kan debugges – om det er muligt at starte en debugger på wsf-filen.

Eksempel:

<job id = "jobTest" prompt = "yes">
<?job error = "true" debug = "true" ?>
job kode
</job>

<named>

Definition af navngivne argumenter.

Syntaks:

<named
 name = namedname
 helpstring = helpstring
 type = "string | boolean | simple"
 required = boolean
/>

Eksempel:

<named
 name = "InstanceName"
 helpstring = "The full name of the instance, ie. SERVER00\INSTANCE00"
 type = "string"
 required = "true"
/>

<object>

Oprettelse af globalt objekt.

Syntaks:

<object id = "objID" [ classid = "clsid:GUID" | progid = "progID" ] />

Eksempel:

<object id = "cnnNorthwind" progid = "ADODB.Connection" />

<package>

<reference>

Definition af reference til COM objekt. Giver blandt andet direkte adgang til COM klassens konstanter. Det bruger jeg gerne!

Syntaks:

<reference [ object = "progID" | guid = "typelibGUID" ] [ version = "version" />

Eksempel:

<reference object = "ADODB.Connection" />

<resource>

Isolering af globale hard–code værdier. Værdien læses med metoden getResource().

Syntaks:

<resource id = "resourceID">
 <[CDATA[
tekst eller tal
 ]]>
</resource>

Eksempel:

<resource id = "resTest"><[CDATA[Denne tekst er en resurse.]]></resource>

<script language = "jscript">
 WScript.Echo( 'Resource = "' + getResource( "Workday" ) + '".' );
</script>

Modsat normal XML–formatering, er det hele skrevet i én linje, da hele strengen mellem de to resource–tags tages med – inklusive linjeskift, indrykninger etc.

Resultat:

Resource = "Søndag".

<runtime>

<script>

Virker fuldstændig som i XHTML.

Niels Grove-Rasmussen Opdateret 18-03-2019 01:25:50.
Ting Ta'r Tid! Hentet 09-07-2020 04:33:11.