Domino 9 und frühere Versionen > ND6: Entwicklung

DOS Batchdatei via Script ausführen

(1/4) > >>

Glombi:
100 mal gemacht, jetzt geht's nicht  ???
Ich habe eine Batchdatei test.bat, die ich per Script aufrufen möchte. Die Datei liegt unter e:\test.bat

Inhalt: dir *.* > ausgabe.txt

Notes ist unter d:\notes6 installiert.

In einem Script-Agenten habe ich folgendes
ret = Shell ("e:\test.bat",1 )

Die Rückgabe von ret ist 33 (also kein Fehler).

Ich sehe kurz die DOS Box, aber das erwartete Ergebnis - die Datei ausgabe.txt - ist nicht da. Wenn ich die bat Datei manuell starte, geht es.

Was habe ich übersehen  ???

Nachtrag: Folgendes geht auch nicht:

ret = Shell ("cmd /c E:\test.bat",1 )
ret = Shell ("cmd /c E:\\test.bat",1 )

Andreas

Glombi:
Es geht - ich habe mal wieder vergessen

Chdrive "e:"

zu setzen. Script sucht auf dem Laufwerk, auf dem Notes installiert ist.

Andreas

MartinG:
Ich rufe auch in ein paar Notesdatenbanken eine Batchdatei auf - allerdings über @Command( [Execute] ...

Was ist wenn Du cmd /k eingibst? Bleibt dann im Taskmanager der Prozess CMD stehen? Ich gehe jetzt mal nicht davon aus das Du unter NT4 arbeitest - da gibt es noch ein paar andere Fallstricke...

Gruss
Martin

Semeaphoros:
Also, Ergebniswert == kein Fehler ist durchaus zu erwarten, Du bekommst den Rückgabewert von CMD.EXE und der gibt nun mal eigentlich keinen echten Status zurück. Der Status von test.bat steht in der Umgebungsvariablen errorlevel (oder so, habs grad nciht mehr genau in Errinnerung) und diese Umgebungsvariable ist transient, sprich ist schoh wieder weg, wenn der CMD geschlossen wird.

Suche mal mit der Suchfunktion nach der Ausgabedatei. Ich vermute mal, dass Du nicht im richtigen Verzeichnis bist. Das was Du hier gepostet hast, spielt sich im aktuellen Dir ab, und das ist, wenn Du aus der Applikation startest, stark vom Zufall abhängig (Wie wurde die App gestartet, wurde von irrgend einem Prozess das aktuelle Verzeichnis gewechselt usw. usw., sprich, das ist echt unzuverlässig).

Anders ausgedrückt, damit Du das erwartete Ergebnis bekommst, braucht Deine test.bat mindestens 2 Zeilen mehr:

D:
cd \dasGewuenschteVerzeichnis

Alternativ lässt sich natürlich der Parameter zum Dir fest verdrahen.

Lohnen dürfe sich auch, den Redirekt auf einen festen Pfad zu verdrahten:

dir D:\MeinDatenverzeichnis > C:\Tenp\Dirausgabe.txt

Glombi:
Danke für die Antworten. An der Batchdatei, die wiederum ein Java-Programm aufruft und 3 Dateipfade übergibt, kann ich nichts schrauben, da das von einem anderen DL erstellt und bereits auf die PCs verteilt wurde.
Ich soll das ganze aus einer Notes-DB aufrufen.
Mit dem ChDrive scheint es ja zu gehen. Ohne dieses funktioniert es nur, wenn sich das ganze auf dem gleichen Laufwerk wie die Notes-Installation befindet.

Das ganze läuft unter XP.

Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln