Batch-Datei aus xBase aufrufen?
Moderator: Moderatoren
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Batch-Datei aus xBase aufrufen?
Guten Morgen,
stehe wieder mal auf dem Schlauch...
Wie kann ich denn aus einem xBase-Programm (Menü) eine Batch-Datei aufrufen und ausführen?
Habe mich schon mit DLLCALL bemüht, kriege das aber nicht hin..
stehe wieder mal auf dem Schlauch...
Wie kann ich denn aus einem xBase-Programm (Menü) eine Batch-Datei aufrufen und ausführen?
Habe mich schon mit DLLCALL bemüht, kriege das aber nicht hin..
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Batch-Datei aus xBase aufrufen?
Hallo, Wolfgang -
viel, viel einfacher ...
einfach gerade aus einem meiner Programm rauskopiert.
viel, viel einfacher ...
Code: Alles auswählen
cCmd := "cmd.exe"
cCmdLine := "/C smp" + cID + ".cmd"
nHandle := RunShell(cCmdLine, cCmd, lParallel, lBackGround)
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Batch-Datei aus xBase aufrufen?
Hallo Georg,
danke erstmal.
Es wird zwar ein CMD-Fenster geöffnet, aber sonst nichts. Selbst wenn ich für cId den Batchnamen eingebe z.B. "test" und statt ".cmd" ".bat"
danke erstmal.
Es wird zwar ein CMD-Fenster geöffnet, aber sonst nichts. Selbst wenn ich für cId den Batchnamen eingebe z.B. "test" und statt ".cmd" ".bat"
Zuletzt geändert von Wolfgang_B am Mo, 03. Mai 2021 12:26, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Batch-Datei aus xBase aufrufen?
Moin Woflgang,
schau Dir mal seine zweite Zeile an - da baut er den Namen seiner Batchdatei zusammen.
In Deinem Fall müsste sie also wie folgt lauten:
Zwei Hinweise:
Nimm möglichst nicht .bat, sondern .cmd als Endung.
Gib den kompletten Pfad an - sowohl bei der Belegung von cCmd, als auch bei cCmdLine
Viele Grüße,
Martin
schau Dir mal seine zweite Zeile an - da baut er den Namen seiner Batchdatei zusammen.
In Deinem Fall müsste sie also wie folgt lauten:
Code: Alles auswählen
cCmd := "cmd.exe"
cCmdLine := "/C test.bat"
nHandle := RunShell(cCmdLine, cCmd, lParallel, lBackGround)
Nimm möglichst nicht .bat, sondern .cmd als Endung.
Gib den kompletten Pfad an - sowohl bei der Belegung von cCmd, als auch bei cCmdLine
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Batch-Datei aus xBase aufrufen?
da ändert sich nichts. Es wird nur ein CMD-Fenster geöffnet ...
cId := "d:\vwin5\vwin5_backup"
cCmd := "cmd.exe"
cCmdLine := "/D smp" + cId + ".cmd"
nHandle := RunShell(cCmdLine, cCmd, .F., .F.)
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Batch-Datei aus xBase aufrufen?
Dann korrigiere das mal richtig!
Laut Deinen Zeilen heißt Deine Batch: smpd:\vwin5\vwin5_backup.cmd
Viele Grüße,
Martin
Laut Deinen Zeilen heißt Deine Batch: smpd:\vwin5\vwin5_backup.cmd
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Batch-Datei aus xBase aufrufen?
Es ist viel einfacher:
also beispielsweise
(Und "copyfiles.bat" enthalt dann etwas wie "xcopy %1 f:\Sicherungen\SicherungHeute\".)
Ausgeführt wird automatisch im Ausführungsverzeichnis der EXE, es sei denn, man hat es gewechselt. Es muss das Recht vorhanden sein, den Batchjob auszuführen.
Code: Alles auswählen
RunShell(<cParameterfürdasBatch>,<cNameundPfaddesBatches>,.F.)
Code: Alles auswählen
RunShell ("c:\MeinProg\*.prg","copyfiles.bat",.F.)
Ausgeführt wird automatisch im Ausführungsverzeichnis der EXE, es sei denn, man hat es gewechselt. Es muss das Recht vorhanden sein, den Batchjob auszuführen.
Herzlich,
Tom
Tom
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Batch-Datei aus xBase aufrufen?
Danke Tom, so einfach ..
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
- Wolfgang_B
- Rekursionen-Architekt
- Beiträge: 486
- Registriert: Do, 14. Jun 2007 18:22
- Wohnort: 94065 Waldkirchen
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 5 Mal
Re: Batch-Datei aus xBase aufrufen?
Es geht noch weiter
Die Batchdatei ist im Verzeichnis d:\vwin5\vwinbackup.bat. Das funktioniert.
Im Netzbetrieb heißt das Verzeichnis \\dev3\vwin5. Die "\\" am Beginn des Pfades kann ich ja abfragen und den Aufruf entsprechend gestalten.
Das Problem kommt dann, wenn ich dieses Konstrukt auf dem Netzwerkrechner aufrufe. Dann kommt klassische Fehlermeldung:
"CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet. UNC-Pfade werden nicht unterstützt. Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt" --> Damit -> Der Befehl "7z" (in der Batchdatei) ist entweder falsch oder wurde nicht gefunden ..
gewünscht ist: Ausführen der Batch-Datei auf dem Rechner, auf dem das xBase-Programm installiert ist und anlegen der 7z-Datei im Verzeichnis der Programmdatei.
Die Batchdatei ist im Verzeichnis d:\vwin5\vwinbackup.bat. Das funktioniert.
Im Netzbetrieb heißt das Verzeichnis \\dev3\vwin5. Die "\\" am Beginn des Pfades kann ich ja abfragen und den Aufruf entsprechend gestalten.
Code: Alles auswählen
IF SUBSTR(CURDIR(),1,2) == "\\"
pfad := CURDIR()+"\"
ELSE
pfad := CURDRIVE()+":\"+CURDIR()+"\"
ENDIf
IF !FILE( pfad+"vwinbackup.bat")
MSgBox("Datei -> "+pfad+"vwinbackup.bat"+" ist nicht vorhanden")
RETURN(NIL)
ELSE
RunShell (pfad+"vprog.exe","vvwinbackup.bat",.F.)
ENDIF
"CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet. UNC-Pfade werden nicht unterstützt. Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt" --> Damit -> Der Befehl "7z" (in der Batchdatei) ist entweder falsch oder wurde nicht gefunden ..
gewünscht ist: Ausführen der Batch-Datei auf dem Rechner, auf dem das xBase-Programm installiert ist und anlegen der 7z-Datei im Verzeichnis der Programmdatei.
Beste Grüße
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Wolfgang
Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück