Wenn ich heute schon mal so schön am Programmieren bin...
Manchmal erzeuge ich in meinen Batchdateien (oft mithilfe eines aufgerufenen EXE-Files Hilfsdateien, die ich mittels CALL dann explizit aufrufe und die möglichst eindeutig sein sollten, damit ein parallel gleichzeitig ausgeführtes Batchfile in einer anderen DOS-Box mit diesen nicht in Konflikt gerät. (Soll nur der Hintergrund sein: Muss man nicht verstehen...)
Dazu würde ich in jeder DOS-Box gerne eine Environment-Variable haben, die einen eindeutigen Wert besitzt, d.h. keine zwei gerade laufenen DOS-Boxen haben für diese Variable dieselbe Belegung.
???????-------
? Wie kann ich einen solchen Wert in C finden?
Z.B. würde der Einspringpunkt des dieser DOS-Box zugeordneten Command/CMD-Befehls gehen? Wäre der bei jedem Aufruf immer anders? Wie kann man den ermitteln?
???????--------
Vielen Dank,
Mdl
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hallo,
Jede cmd.exe hat eine eigene Prozessnummer (PID).
Hiermit: http://www.scheibli.com/projects/getpids/
bekommst Du diese heraus.
Gruss
ChrE
Hallo CrE
und danke für den Tipp.
GETPIDS gibt ja ein paar Zahlen wieder, bei meinen Versuchen immer 4 Stück.
Wenn ich die Anleitung richtig verstehe, dürfte die vorletze Zahl beim Direktaufruf von GETPIDS dem CMD Befehl zugeordnet sein. D.h. habe ich zwei oder mehr DOS-Boxen offen und rufe GETPIDS auf, müsste die vorletzte Zahl bei jeder DOS-Box unterschiedlich sein.
? Ist das richtig?
(Bei meinen Tests waren diese Zahlen nie gleich, aber nur weil ich bei 20 Versuchen nie in die Mitte einer Dart-Scheibe getroffen habe, heißt das ja nicht, dass das ja nicht dass unmöglich ist...)
(Falls ja könnte ich die in der Ausgangsfrage gesuchte, für jede DOS-Box eindeutige Environment-Variable einfach mit diesem Wert belegen und das Problem wäre gelöst...)
Viele Grüße,
Mdl
Hallo!
Schau Dir doch mal die Sample.bat an.
Die gibt bei mir immer die selbe Zahl (für eine Instanz) zurück.
Nämlich die PID der aktuellen cmd.exe
Du kannst diese Zahl einer Env-Variablen zuordnen (im Beispiel XX1PID)
und so die Boxen unterscheiden.
Gruss
ChrE
Hallo ChrE,
also die vor-vorletzte Zahl...
Hab es jetzt in mein DOSBOX-Start-Batchfile eingebaut...
Vielen Dank,
Mdl
Hallo!
Kammst Du bei "Optionen zum Beitrag" das Posting als beantwortet markieren?
Das wäre nett.
ChrE
Ok, klar...
Mache es ein bißchen ungern, weil - obwohl Deine Lösung gut funktioniert - ja vielleicht noch jemand anderes eine gute Idee hat.
Werde nachher gleich mal ausprobieren, ob man danach theoretisch noch einen Kommentar dazu abgeben kann...
Gruß,
Mdl
Jooh, geht,..