Mit batch Programme mit variablen starten

hallo ich bin ein batch Neuling und hab folgende Aufgabe:

Wie schreibt mann das in eine batchDatei ???

vielen Dank

; Beachte, dass Shared Libraries hier nicht geladen werden. Sie muessen vorab
; in einer Batch-Datei geladen werden
; Aufbau einer Zeile:
; = Wird nicht ausgewertet
; = Wird nicht ausgewertet
; = Wird nicht ausgewertet
; = max. 16 Zeichen Prozessname
; = max. 16 Zeichen Name des ersten Threads ( ‚*‘ = selber Name wie Prozess)
; = Name der *.EXE-Datei, die zu laden ist
; = Argumente, fuer die Funktion main() des geladenen Prozesses
;
;
* * * HAUPT * bin\haupt.exe
* * * PLC PLCCYC bin\plc.exe
* * * REGEL STARTUP bin\regel.exe
* * * SECURITY CYCLIC bin\security.exe
* * * DIREDIT DIR bin\dir.exe EDIT
* * * DIRRUN DIR bin\dir.exe MACHINE
* * * EXT * bin\ext.exe
* * * GEOSIM SYNC bin\geo.exe SIMU
* * * GEORUN SYNC bin\geo.exe MACHINE
* * * DISPLAY DISPLAY bin\display.exe
* * * SCRNMGR * bin\scrnmgr.exe
* * * CALC * bin\calc.exe
* * * FLSERVER * bin\flserver.exe
* * * SOKY * bin\soky.exe
* * * BDEHAN * bin\bdehan.exe
* * * NCSETUP * bin\ncsetup.exe
* * * WINCMD * bin\wincmd.exe

Ääähh …

Wer, wie, was ist los?

also
ein Programm sagt mir das ich in einer Batchdatei ein paar Programme starten soll.
; Aufbau einer Zeile:
; = Wird nicht ausgewertet
; = Wird nicht ausgewertet
; = Wird nicht ausgewertet
; = max. 16 Zeichen Prozessname
; = max. 16 Zeichen Name des ersten Threads ( ‚*‘ = selber Name wie Prozess)
; = Name der *.EXE-Datei, die zu laden ist
; = Argumente, fuer die Funktion main() des geladenen Prozesses

; Args>
* * * HAUPT * bin\haupt.exe

wie müsste dann die Batchdatei aussehen ?

Danke

Hallo!

;
Args>
* * * HAUPT *
bin\haupt.exe

wie müsste dann die Batchdatei aussehen ?

Tja, das hast Du ja schon im ersten Beitrag geschrieben. Es fehlen einfach Infos. Was für eine Art Batch ist das. In was für einer Umgebung findet das statt? Die Zeilen mit den Sternen am Anfang sind wohl die einzelnen Batchjobs. Mit was für einem Programm soll dieser Batchjob abgearbeitet werden? cmd.exe (DOS/Windows) kann es nicht sein, denn mit den Sternen das Programm nichts anfangen.

Jan

Ich durchschaue noch imemr nicht, wo diese Ausgabe da herkommt. Wenn du bin}haupt.exe ausführen willst, lautet der Inhalt deiner Batch-Datei

======
bin\haupt.exe

-nik

Ich kann ja mal vermuten, dass er einfach die aufgelisteten Prozesse per Batch starten möchte. Dazu müsste er die Datei da parsen …

Aber mehr als raten kann man da wohl nicht …

Hallo!

Ich durchschaue noch imemr nicht, wo diese Ausgabe da
herkommt. Wenn du bin}haupt.exe ausführen willst, lautet der
Inhalt deiner Batch-Datei

Eine Zeile wie „* * * HAUPT * bin\haupt.exe“ entspricht ja der Beschreibung darüber. „“ wäre „HAUPT“, „“ wäre „bin\haupt.exe“.

Ich vermute, das, was der OP da gepostet hat, ist bereits die Batchdatei (Batch im klassischen Sinne). Und ich vermute, er wird auch das Programm, dass diese Datei abarbeitet, haben. Vermutlich soll nur eine DOS-Batchdatei geschrieben werden, die vor dem Start des eigentlichen Programms eben obiges erledigt, also ganz simpel …

libloader.exe lib.dat
main.exe

… wobei lib.dat die gepostete Datei wäre.

Aber an weiteren Spektulationen werde ich mich nicht beteiligen, da es wohl um eine Donglesimulator-Software geht. Das geht mir natürlich als Softwareentwickler gegen den Strich (auch wenn ich keine Dongles verwende).

Jan

Achsoooo, jetzt verstehe ich. Diese Art von Batch kannte ich noch gar nicht …

Hallo Jan

wie du schon richtig erkannt hast soll ich eine Batchdatei vor dem eigendlichen Programm starten. In welcher Umgebung kann ich nicht sagen das eigendliche Programm soll unter XP laufen also nehm ich an das die batchdatei auch unter XP die Processe starten soll. Ob da die Sternchen nur als Platzhalter gemeint sind kann ich nicht sagen.
der Text den ich gepostet hab steht genau so in einer Process.lis Datei mit einer Art Tabelle mit der Spalte 1 darunter die Sternchen usw und in Spalte 4 die Namen „Haupt“ usw.

ich danke euch für eure Mühe es ist für mich sehr wichtig wenn das irgendwie funktionieren würden
Danke

Hallo!

ich danke euch für eure Mühe es ist für mich sehr wichtig wenn
das irgendwie funktionieren würden

Sorry, meine Verdächtigung von wegen Donglesimulator war Nonsens. Es geht wohl um eine CNC-Anwendung, richtig?

Tja, helfen kann man da kaum. Process.lis ist in einem proprietären Format, das wohl nur eines der Programme versteht, das zu der Software gehört. Und welches das ist, müsste eigentlich aus der Doku hervorgehen.

Jan

Hallo!

du hast vollkommen Recht mit der CNC Anwendung. Das Programm verweist mich auf die process.lis das ist eine Textdatei.
was hat es denn mit

; Prozessliste fuer Windows Programmierplatz
; Beachte, dass Shared Libraries hier nicht geladen werden. Sie muessen vorab
; in einer Batch-Datei geladen werden

auf sich ?
danke

Hallo!

; Prozessliste fuer Windows Programmierplatz

Das lässt das jetzt doch anders aussehen. Die Zeilen mit den exe-Dateien, das ist die Prozessliste. Und mit dieser Datei Process.lis muss gar nichts gemacht werden. Im Kommentar der Datei steht nur der freundliche Hinweis, dass vorher irgendwelche Shared Libraries irgendwie geladen werden müssen.

Jan

hallo Jan

ich danke dir das du dich da so reinhängst aber ich komm echt nicht weiter. Wie könnte denn die batchdatei nun aussehen oder soll ich die …exe alle einzeln starten nur fehlen dann die anderen infos
oder wie schreibt man ein batch wenn ich einer applikation ein paar variablen mit geben möchte?

Danke

Moin Nagy!

ich danke dir das du dich da so reinhängst aber ich komm echt
nicht weiter. Wie könnte denn die batchdatei nun aussehen oder
soll ich die …exe alle einzeln starten nur fehlen dann die
anderen infos
oder wie schreibt man ein batch wenn ich einer applikation ein
paar variablen mit geben möchte?

Hast Du keinen Zugriff auf Google? Oder Wikipedia?

Hmm. Ich verstehe schon. - Du kennst nicht den Ansatzpunkt, weil Du nie unter DOS o.ä. gearbeitet hast.

Eine Stapeldatei (s.a. http://de.wikipedia.org/wiki/Stapelverarbeitung) enthält i.d.R. einfach die Befehlszeilen, wie man sie auf Kommandozeilenebene (siehe Start > Programme (> Zubehör ) > cmd.exe) eingeben würde.

Ein einfaches Beispiel wäre… Zunächst die Problembeschreibung:
Ein Programm, das ich einmal „dingsda.exe“ nenne, liest/schreibt nur Daten, die sich auf dem Laufwerk D: im Ordner „Data“ befinden. Außerdem muss in den Pfad „D:\Data“ gewechselt werden…

Die Aufgabe besteht darin…
Da das aktuelle System nur über eine Festplatte (C:smile: verfügt, muss ein virtuelles Laufwerk angelegt werden, das sich mit der Kennung D: ansprechen lässt. Der Datenpfad „Data“ befindet sich bspw. in „C:\Dokumente und Einstellungen\Benutzer0815\Eigene Dateien“. Zuguterletzt soll „dingsda.exe“ gestartet werden.

Der Stapeljob für Windows XP sähe dann mindestens so aus:

 subst d: "C:\Dokumente und Einstellungen\Benutzer0815\Eigene Dateien\"
 d:
 cd \Data
 dingsda.exe

Praktisch fügt man noch Erklärungen zur Dokumentation ein, damit nicht ein Admin in 3 Jahren wie der Ochs vorm Berg steht:

 @ echo off
 rem Stapeljob: startdingsda.bat (oder \*.cmd)
 rem Startet Dingsda auf Datenpfad "D:\Data",
 rem wenn nur Laufwerk C: vorhanden ist

 rem Laufwerk D: anlegen
 subst d: "C:\Dokumente und Einstellungen\Benutzer0815\Eigene Dateien\"

 rem Nach "D:\Data\" wechseln
 d:
 cd \Data

 rem Programmstart
 dingsda.exe

 :End 

Der Stapeljob wird unter dem Namen „startdingsda.bat“ als Klartextdatei abgelegt und dann z.B. mit „Senden an > Desktop“ als Verknüpfung verlinkt. – HINWEIS: Der Einfachheit halber habe ich einmal auf eine Fehlerbehandlung verzichtet, falls Laufwerk D: usw. (nicht) existiert.

Weitere Erklärung: „SUBST“ ist im o.g. Fall ein Programm, das resident (vor)geladen werden muss. „CD“, kurz für „CHDIR“ wechselt zum angegebenen Verzeichnis (bei Leerzeichen im Pfad mit „Anführungsstrichen“!).

In Deinem speziellen Fall erwartet das Programm Parameter, die in der Befehlszeile mit angegeben werden müssen, also vielleicht in etwa so:

 dingsda.exe /hires /color /ini=NAGY.DAT

Im Web gibt’s einige Dokus über Batch-Befehle und -Tricks. Kannst Du Dir ergoogeln mit „Batch +Tutorials“, auch auf Deutsch. - Folgender ist ganz gut: http://www.antonis.de/dos/batchtut/bat-kurs/
Aber es gibt noch’n paar andere deutschsprachige…

So! Viel Spaß! :wink:

CU DannyFox