Autor Thema: DOS Batchdatei via Script ausführen  (Gelesen 8286 mal)

Glombi

  • Gast
DOS Batchdatei via Script ausführen
« am: 21.07.04 - 09:28:27 »
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
« Letzte Änderung: 21.07.04 - 09:38:55 von Glombi »

Glombi

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #1 am: 21.07.04 - 09:52:24 »
Es geht - ich habe mal wieder vergessen

Chdrive "e:"

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

Andreas

Offline MartinG

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.802
  • Geschlecht: Männlich
Re:DOS Batchdatei via Script ausführen
« Antwort #2 am: 21.07.04 - 09:55:53 »
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
Martin
Wir leben zwar alle unter dem gleichen Himmel, aber wir haben nicht den gleichen Horizont.
KONRAD ADENAUER

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DOS Batchdatei via Script ausführen
« Antwort #3 am: 21.07.04 - 09:57:13 »
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
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #4 am: 21.07.04 - 11:30:33 »
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

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DOS Batchdatei via Script ausführen
« Antwort #5 am: 21.07.04 - 11:36:08 »
Also, mit ChDrive und ChDir kannst Du den Effekt natürlich auch erreichen, das sollte unproblematisch sein.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #6 am: 21.07.04 - 16:16:34 »
Falls es mit dieser Lösung Probleme gibt, existieren weitere Mehr-Infrastruktur-heisst-oft-letztendlich-nicht-komplizierter Ansätze.

1. rmi (beschrieben in www.javabuch.de).
2. webservice

Ich mag eigentlich solche old-school-Formen der Integration von unterschiedlichen Prozessen wie "externes Programm aufrufen und dann Dateien auslesen" absolut nicht. Da hab ich aber auch unter Kollegen sehr andere Meinungen.

Glombi

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #7 am: 21.07.04 - 16:23:41 »
Axel, Du hast recht. Es ist auch eher eine temporäre Krücke (die dann ja bekanntlich die am längsten verwendeten Programme sind  ;D)

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DOS Batchdatei via Script ausführen
« Antwort #8 am: 21.07.04 - 16:58:42 »
Andreas, Du meinst, als nächster Schritt müsste die Batch-Datei in Cobol übersetzt werden .......  ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #9 am: 21.07.04 - 17:01:25 »
genau dagegen lehnt sich bei mir irgendwas auf.
Entwickelt sich zu so einer Art Besessenheit.
Falls ich irgendwann ein openSource Zeugs schreiben würde wäre es:

1984
Don't trust those IT people, no matter which flavour they belong too.  
Manage, monitor, trace every tiny method/function call in your shiety little enterprise or one day the whole stuff will kill you.
 
(bei open Source muss man ja nicht so auf Marketing achtgegen. 8)
Ansonsten bin ich gegenüber Kunden sensibel, rücksichtsvoll und voll nett).    

Auf der anderen Seite muss man schon sehr smart sein, wenn man da nicht statt eines point of failure eine Kette von points of failure erzeugt.

« Letzte Änderung: 21.07.04 - 17:03:42 von Marinero Atlántico »

Glombi

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #10 am: 22.07.04 - 09:07:26 »
Ich muss den Thread doch nocheinmal aufmachen.
Das ganze funktioniert solange man Laufwerksbuchstaben hat. Mit UNC Pfaden geht das allerdings nicht, da ChDrive einen Fehler erzeugt.

Hat jemand eine Idee?

Andreas

Marinero Atlántico

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #11 am: 22.07.04 - 10:14:24 »
nich hauen  :-[

aber ich hab vor 2 Jahren mal ein ähnliches Problem mit Kapitel 46 Remote Method Invocation des Handbuchs der Javaprogrammierung gelöst (bzw. der Vorgängerversion).

Das war eine Domino5 Umgebung und die Java App, die eingebunden war Java1.3.

Trotz der Versionsunterschiede in Java lief das reibungslos und war auch nicht so schwierig (hatte damals aber schon einiges an Erfahrung mit Java).
Rose Kelleher beschreibt die Dominoseite in ihrem Buch von 1998 (allerdings für Web).

Ein Java Notes Agent kommuniziert über RMI mit der als RMI-Service eingebundenen Java-Klasse.
Heute würde ich das Problem wahrscheinlich mit Webservices angehen. Vielleicht kommst du ja mit Java-RMI klar. Das ist alles gar nicht so schwierig.

Gruß Axel
« Letzte Änderung: 22.07.04 - 10:31:54 von Marinero Atlántico »

Offline MartinG

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.802
  • Geschlecht: Männlich
Re:DOS Batchdatei via Script ausführen
« Antwort #12 am: 22.07.04 - 10:30:17 »
Hallo Andreas,

was mir nicht ganz klar ist wann Du den Laufwerksbuchstaben brauchst? Kannst Du das Laufwerk nicht in der Batch-Datei einbauen:

net use z: \\server1\freigabe

Ist zwar nicht so elegant, ich denke es könnte den Kunden aber "befriedigen" weil Batch-Programmierung i.d.R. eher die Welt der Admins ist als Notes....

Gruss
Martin
Martin
Wir leben zwar alle unter dem gleichen Himmel, aber wir haben nicht den gleichen Horizont.
KONRAD ADENAUER

Glombi

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #13 am: 22.07.04 - 10:48:07 »
Ich möchte das möglichst ohne Anpassen der Batchdatei hinbekommen. Es ist mir auch gelungen.
Die Batchdatei muss in einem Verzeichnis mit Laufwerksangabe liegen, da das
Shell ("cmd /c..."
bzw. cmd kein UNC unterstützt.

Jetzt muss mir nur noch einer sagen, wie ich eine .txt in einem UNC Pfad öffnen.
ret = Shell ("Explorer " & PathLogFile,6 )      
öffnet mir die Datei im Internetexplorer. Wie kann ich den Editor aufrufen? Irgendwie bin ich zur Zeit betriebsblind...

Andreas

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:DOS Batchdatei via Script ausführen
« Antwort #14 am: 22.07.04 - 21:22:47 »
Wie wäre es mit

cmd /c notepad.exe ........ ?

Oder sonst kannst Du wohl auch noch ein paar Sachen über das FSO (FileSystemObject) erreichen. Such mal bei Microsoft nach dem Ding.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Marinero Atlántico

  • Gast
Re:DOS Batchdatei via Script ausführen
« Antwort #15 am: 23.07.04 - 10:40:48 »
was ist mit Ralfs Idee, das Java Programm via Programmdokument aufzurufen ???
http://www.atnotes.de/index.php?board=24;action=display;threadid=17049;start=0;boardseen=1
Die letzten Einträge (27.7.04, morgens)

Gruß Axel

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz