Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Suche: eindeutige Id für jede DOS-Box

Mdl / 7 Antworten / Baumansicht Nickles

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



bei Antwort benachrichtigen
ChrE Mdl „Suche: eindeutige Id für jede DOS-Box“
Optionen

Hallo,

Jede cmd.exe hat eine eigene Prozessnummer (PID).

Hiermit: http://www.scheibli.com/projects/getpids/

bekommst Du diese heraus.

Gruss

ChrE

bei Antwort benachrichtigen
Mdl ChrE „Hallo, Jede cmd.exe hat eine eigene Prozessnummer PID . Hiermit:...“
Optionen

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

bei Antwort benachrichtigen
ChrE Mdl „Hallo CrE und danke für den Tipp. GETPIDS gibt ja ein paar Zahlen wieder, bei...“
Optionen

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

bei Antwort benachrichtigen
Mdl ChrE „Hallo! Schau Dir doch mal die Sample.bat an. Die gibt bei mir immer die selbe...“
Optionen

Hallo ChrE,

also die vor-vorletzte Zahl...

Hab es jetzt in mein DOSBOX-Start-Batchfile eingebaut...


Vielen Dank,

Mdl

bei Antwort benachrichtigen
ChrE Mdl „Hallo ChrE, also die vor-vorletzte Zahl... Hab es jetzt in mein...“
Optionen

Hallo!

Kammst Du bei "Optionen zum Beitrag" das Posting als beantwortet markieren?

Das wäre nett.

ChrE

bei Antwort benachrichtigen
Mdl ChrE „Hallo! Kammst Du bei Optionen zum Beitrag das Posting als beantwortet markieren?...“
Optionen

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

bei Antwort benachrichtigen
Mdl Nachtrag zu: „Ok, klar... Mache es ein bißchen ungern, weil - obwohl Deine Lösung gut...“
Optionen

Jooh, geht,..

bei Antwort benachrichtigen