Domino 9 und frühere Versionen > ND8: Entwicklung
Shell Exitcode auslesen
(1/1)
mli:
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
MarkusL:
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
pram:
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)
--- Ende Code ---
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
mli:
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
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln