Egal ob ein Setup einen Link auf dem Desktop hinterläßt den man mal schnell löschen will, oder ob man nach dem automatisierten Setup noch Dateien in den Zielordner kopieren will.
Das geht alles mit einem Skript und dem jeweil richtigen Befehl. Den Befehl, den man aus der großen Anzahl an Möglichkeiten, die der ACMP AutoMATE bietet auch erstmal herausfinden muss.
Einfache Installationen mit dem "InstaRec" Rekorder aufzeichnen - das kann an siche jeder, der auch ein Setup bedienen kann. Aber der Profi muß mehr können. Das ist auch der Grund warum ich empfehle eine Schulung zum AutoMATE zu machen. Nur so kann man schnell alle Möglichkeiten ausschöpfen.
Wie ist das zum Beispiel mit Pfaden. Wer von einem beliebigen Pfad aus nur mal eine Ebene höher will, wie geht das?
Code: Alles auswählen
' Irgendein Pfad, hier der wo das Script selbst liegt
VAR\PAT=?pfad
' Eine Ebene höher wechseln
' BLB = "Before Last Backslash"
BLB\$$PAT
VAR\$$PSA=$v1$
' CTC = Copy To Clipboard
CTC\$v1$
Code: Alles auswählen
IEX\
' Wenn das Script als EXE läuft
VAR\$$PAT=$ev4$
ELSE
' Wenn das Script im Editor läuft
VAR\PAT=?pfad
EEX\
BLB\$$PAT
VAR\$$PSA=$v1$
CTC\$v1$
Code: Alles auswählen
' Wieder nehmen wir eine konrete Datei (mit oder ohne Pfad)
VAR\$$FIC=f:\files\tiefer\Meinfile.pas
' Nun ermitteln wir alles vor dem letzten "."
BLC\$$FIC|.
VAR\$$FIX=$v1$
' Und damit können wir nun die anderen Files gleichen Namens, anderer Endung ermitteln
' f:\files\tiefer\Meinfile.log
VAR\$$FIN=$$FIX.log
' f:\files\tiefer\Meinfile.inc
VAR\$$FIS=$$FIX.inc
In Batchfiles sehr nützlich, weil man so alles perfekt absichern kann, gegen Latenzen im Dateisystem.
Code: Alles auswählen
WFF\$$FIN
Code: Alles auswählen
' Datei löschen
DEL\$$FIN
' Und sicherheitshalber warten bis die Datei wirklich aus allen Puffern weg ist
WFF\$$FIN|!
Code: Alles auswählen
VAR\$$PAT=c:\myfolder\
CHD\$$PAT
' Kleine Pause von 150 ms
TDL\150
Sei es was es will:
Code: Alles auswählen
VAR\$$COM=c:\bin\mytool.exe
VAR\$$FIC=My parameters /v /x
EXE\$$COM|"$$FIC"
besteht zumindest die Gefahr dass mal eine Variable eines aufgerufenen Unterscriptes eine Variable des aufrufenden Scriptes überschreibt.
Das kann man ganz leicht umgehen, mit VVS\ und VVR\.
Dazu macht man das aufrufende Script so, wie immer:
Code: Alles auswählen
' Das Script: "MySubScript.rem" im gleichen Ordner wird aufgerufen, es werden zwei Parameter an das Script übergeben.
VAR\$$TXT=Hallo Franz
JNF\MySubScript.rem|Parameter1|Parameter2
' Es wird "Hallo Franz" ausgegeben.
MBX\$$TXT
@
Code: Alles auswählen
' MySubScript.rem
VVS\
VAR\$$TXT=Hallo Peter
' Die Variablen sind alle gesichert, die Parameter sind jedoch alle da.
VAR\$$NAM=$$_01
VAR\$$NAN=$$_02
MBX\ Der erste Parameter ist: $$NAM
MBX\ Der zweite Parameter ist: $$NAN
' Es wird "Hallo Peter" ausgegeben.
MBX\$$TXT
VVR\
' Das @ beschliesst ein Unterprogramm das mit "JNF\" auferufen wird.
@
Grundsätzlich kann man einen Pfad ganz einfach zerlegen mit GFT\ (Get File Tokens).
Ein Befehl denn man in dem Zusammenhang kennen sollte.
Mit "GFT\" können Sie einen im Datenteil angegebenen kompletten Dateipfad in die Bestandteile
- Verzeichnis (ohne Backslash am Ende),
- Dateiname (ohne Endung) und
- Endung (sofern es eine gibt)
zerlegen. Die Token werden in Kleinbuchstaben in programminternen Variablen hinterlegt:
$v2$ enthält das Verzeichnis ohne abschließenden Backslash,
$v3$ enthält den reinen Dateinamen ohne Endung,
$v4$ enthält die Endung,
$v5$ enthält das Root-Verzeichnis mit abschließendem Backslash und
$v6$ enthält den reinen Verzeichnisnamen ohne abschließenden Backslash.
Wenn es sich um einen Netzwerkpfad handelt, wird statt des Verzeichnisnamen in
$v6$ der Servername mit abschließendem Backslash geliefert.
Wenn im Datenteil der Name eines (existierenden) Verzeichnisses übergeben wird, bleiben $v3$ und $v4$ leer.
Wenn Sie den Datenteil leer lassen, wird der Inhalt von "$v1$" als Dateipfad benutzt, wie er z.B. von "IEF\" (If Exists File/Folder) belegt wurde.
Beispiel:
DVV\1+
GFT\?remexe
@
Output:
$v2$=e:\wr6-code
$v3$=remote
$v4$=exe
$v5$=e:\
$v6$=wr6-code