# Ausführen von Skripten

Wenn du AutoIt startest, dann wirst du nach dem Skript gefragt, das du öffnen möchtest. Eine Skriptdatei ist eine einfache Textdatei, die AutoIt-Schlüsselwörter und -Funktionen enthält, die AutoIt sagen, was es machen soll. Skripte können mit notepad.exe oder einer viel besseren Alternative geschrieben werden.

Obwohl AutoIt 3-Skripte einfache Textdateien sind, erhalten sie üblicherweise die Endung .au3, damit sich Skripte und Textdateien besser unterscheiden lassen. Wenn du AutoIt komplett installiert hast, kannst du ein Skript ausführen, indem du es einfach doppelt anklickst. Du kannst auch Optionen wählen - nämlich das Skript zu öffnen, zu bearbeiten oder zu kompilieren - wenn du mit der rechten Maustaste auf die .au3-Datei klickst.

Hier ein Beispielskript. Beachte, dass das ; einen Kommentar signalisert (ähnlich REM in MSDOS-Batch-Dateien):

; Das ist mein erstes Skript
MsgBox(0, "Mein erstes Skript!", "Hallo Welt!")

Kompiliziertere Skripte werden Funktionen nutzen, die normalerweise am Ende des Skriptes platziert werden. Hier ein ähnliches Skript mit Funktionen:

; Das ist mein erstes Skript (mit Funktionen)
MsgBox(0, "Mein zweites Skript!", "Hallo aus dem Hauptskript!")
TestFunc()
Func TestFunc()
MsgBox(0, "Mein zweites Skript!", "Hallo aus der Funktion!")
EndFunc

## Kommandozeilenparameter

Das besondere Array $CmdLine wird mit den deinem AutoIt-Skript übergebenen Komandozeilenparametern initialisiert. Der Skriptname wird dabei nicht als Parameter aufgefasst; den kannst du über @ScriptName herausfinden. Ein Parameter, der Leerzeichen beinhaltet, muss von "doppelten Anführungszeichen" umgeben sein. Kompilierte Skripte akzeptieren Kommandozeilenparameter genauso.
$CmdLine[0] ist die Anzahl der Parameter
$CmdLine[1] ist Parameter 1 (nach dem Skriptnamen)
$CmdLine[2] ist Parameter 2 etc.
...
$CmdLine[$CmdLine[0]] ist einer der Wege, um den letzten Parameter auszulesen...

Wenn du also dein Skript so ausführst:

AutoIt3.exe meinskript.au3 param1 "das ist ein anderer Parameter"

$CmdLine[0] ergibt... 2

$CmdLine[1] ergibt... param1

$CmdLine[2] ergibt... das ist ein anderer Parameter

@ScriptName ergibt... meinskript.au3

Zusätzlich zu $CmdLine gibt es noch eine variable namens $CmdLineRaw, die unformatierten Kommandozeilenparameter enthält. Im obigen Beispiel:

$CmdLineRaw ergibt... meinskript.au3 param1 "das ist ein anderer Parameter"