Autor Thema: Shell Exitcode auslesen  (Gelesen 1669 mal)

Offline mli

  • Frischling
  • *
  • Beiträge: 6
Shell Exitcode auslesen
« am: 18.04.13 - 11:30:38 »
Hallo,

ich möche per NS ein DOS Batch Programm starten, das mir einen Rückgabewert liefert.

NotesScript:
        AppName = D:\TestS.cmd
   ProcId = Shellid (AppName, ShellHide)
   ProcHnd = OpenProcess(SYNCHRONIZE, False, ProcId)
   XShell = WaitForSingleObject(ProcHnd, TimeOut)

z.B. DOS Programm: TestS.cmd mit folgendem Inhalt:
Pause
exit /b 2

Aufruf:
Call D:\TestS.cmd

Abfrage:
echo %errorlevel%

Ergebnis:
2

Welche Möglichkeit habe ich unter Notesscript auch als Ergebnis die "2" zu erhalten?



Viele Grüße

Offline MarkusL

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Männlich
Re: Shell Exitcode auslesen
« Antwort #1 am: 18.04.13 - 13:49:58 »
Hallo,

du musst z. B. das Ergebnis in eine txt-Datei schreiben und diese auslesen.

fileNum% = FreeFile()
Open PATH For Input As fileNum% 'PATH = txt-Dateiname mit Pfad
Do Until EOF(1)
   'Hier erfolgt die weitere Verarbeitung, bis das Ende der Datei erreicht ist.
   Line Input #1, text$
      textalt = doc.GetItemValue( FIELD2 )(0)      
      Call doc.ReplaceItemValue(FIELD2, textalt + text$ + Chr(13) & Chr(10))
   Loop
   Close fileNum%
               
   'Löschen der Log-Datei
   Kill PATH

Geht vielleicht schöner und schneller, bei mir klappt es aber so.

Gruß Markus
Version Lotus Notes / Domino: 8.5.3
Server: 1 Cluster, 1 weiterer Server
Anzahl Benutzer: ca. 230

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Shell Exitcode auslesen
« Antwort #2 am: 18.04.13 - 14:39:43 »
Ich kann dir sagen, dass der Aufruf von "WaitForSingleObject" unter Domino 64 Bit seit 8.5.3 FP3 zu einem Serverabsturz führt.

Wir verwenden statt dessen jetzt
Code
Set vShell = CreateObject("WScript.Shell")
nRet = vShell.Run(sCommand, 3, True) 
http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.84%29.aspx
.... If set to true, script execution halts until the program finishes, and Run returns any error code returned by the program....

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline mli

  • Frischling
  • *
  • Beiträge: 6
Re: Shell Exitcode auslesen
« Antwort #3 am: 23.04.13 - 11:58:10 »
Hallo,

das mit dem "WScript.Shell" hat super funktioniert.
Man darf nur die Anführungszeichen (CHR(34) & "C:\Program Files (x86)\TestS\TestS.cmd" & CHR(34)) nicht vergessen.

Besten Dank für den Tipp.


Gruß

MLI

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz