WinFuture-Forum.de: Mehrere exe Dateien hintereinander ausführen mit relativer Pfad angab - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Mehrere exe Dateien hintereinander ausführen mit relativer Pfad angab


#1 Mitglied ist offline   rottendreams 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 01. Dezember 17
  • Reputation: 0

geschrieben 01. Dezember 2017 - 20:00

Hallo

Ich möchte mir eine Batch Datei erstellen womit ich mehrere exe Dateien hintereinander starten kann.

Das habe ich gefunden:

@echo off
start "" "prog1.exe"
start "" "prog2.exe"
start "" "prog3.exe"
start "" "prog4.exe"

Soweit ich das verstehe müssen hierbei alle exe Dateien im selben Ordner liegen.
Ich habe aber mehrere Unterverzeichnisse wo die exe drinnen liegen was muss ich dann eingeben?

Vorallem geht das auch relativ zum Festplatten Pfad?
Im normal fall würde man ja C:\dir\dir\blabla.exe Eintragen. Wenn ich den Ordner dann wo anders hin Kopiere und er nicht mehr auf C:\ sondern auf E:\ würde es ja nicht mehr funktionieren. Daher ob das relative zur Festplatte geht.

Ich hoffe ich konnte mich verständlich erklären.
0

Anzeige



#2 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 01. Dezember 2017 - 22:22

Willkommen im Forum!

Du brauchst nur den kompletten Pfad nach start angeben.
start C:\Bla\Tool.exe
start X:\Tool.exe
start "Y:\Ordner 1\Tool.exe"

Man beachte die "" bei Leerzeichen-Pfaden
0

#3 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 01. Dezember 2017 - 23:06

Beitrag anzeigenZitat (rottendreams: 01. Dezember 2017 - 20:00)

Vorallem geht das auch relativ zum Festplatten Pfad?
Im normal fall würde man ja C:\dir\dir\blabla.exe Eintragen. Wenn ich den Ordner dann wo anders hin Kopiere und er nicht mehr auf C:\ sondern auf E:\ würde es ja nicht mehr funktionieren. Daher ob das relative zur Festplatte geht.


Irgendworan wird es immer hakeln, weil irgendeinen Bezugspunkt braucht man immer, und entweder ist das der absolute Pfad im Dateisystem (wie C:\Windows\System32\regedit.exe) oder aber man nimmt irgendeinen anderen Bezugspunkt...

... und wenn man dann die zu startende Datei verschiebt, kann es einem immer passieren, daß sie nun nicht mehr gefunden werden kann.

Möglichkeiten, die man verfolgen kann:


1. Man trägt das in die Registry ein, unter [SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths],
relativ zu \HKLM oder \HKCU . Hier kommt ein neuer Schlüssel drunter mit dem Namen der Datei,den man aufrufen möchte (zB minesweeper.exe) und dann trägt man unter dem Standardwert als Zeichenfolge den vollständigen Pfad ein.

Pro: Dann kann man das in Scripts einfach per start <dateiname.exe> aufrufen (also dem Namen des eben angelegten Schlüssels entsprechend).

Contra: Die Pfadangabe ist immer noch absolut, nur nicht mehr in dem/den Script(s), sondern nun in der Registry. Ändert sich der Dateipfad, muß man ihn an genannter Stelle in der Registry ebenfalls ändern.


2. Man trägt das in den Windows-Suchpfad ein. Das geht in den Systemeinstellungen. Hier kann man die PATH-Variable fürs System (allgemein für alle) und für den Benutzer (jeweils individuell) ändern und den bzw die Pfade, wo die auszuführenden Dateien gefunden werden sollen, eintragen.

Pro: Wie in (1) kann man sich nun die Dateipfade in den Scripts sparen (und das start davor in den meisten Fällen auch).

Contra: Alle Pfade sind im Suchpfad "gleichberechtigt", sprich, es wird der Suchpfad immer von links nach rechts abgearbeitet und das erste Gefundene wird genommen. Insbesondere: Hat man zwei Ordner im Suchpfad, die beide eine Datei namens minesweeper.exe enthalten, dann wird man die zweite minesweeper.exe (die später im Suchpfad steht) niemals finden können. Das heißt auch: habe ich, warum auch immer, einen Ordner mit zB regedit.exe oder cmd.exe drin, oder sogar einer DLL-Datei wie shell32.dll (irgendeine) und die befinden sich im Suchpfad VOR \Windows und \Windows\System32, dann wird mein Windows nicht mehr richtig, schlimmstenfalls gar nicht mehr funktionieren, bis das wieder abgeändert wurde (geht per Recovery-Umgebung und man muß die System-Registry selber laden und muß dort nach den entsprechenden Einträgen suchen).

Kurz: Besser nicht tun.

Vollständigerweise: Verschiebe ich was, muß ich den neuen Pfad wieder im Systempfad eintragen und schon tut es wieder.

3. Man sucht sich eine akzeptable Referenz raus und verwendet die als relativen Bezugspunkt.

Beispiel: Ich hab zwei Dateien a.exe und b.exe und eine liegt in C:\Spiele\SpielA\a.exe und die andere in C:\Spiele\SpielB\b.exe, dann kann ich mir "C:\Spiele" als Bezugspunkt suchen und kann dann in einem Script
@echo off
cd /DC:\Spiele
SpielA\a.exe
SpielB\b.exe


sagen.

Verschiebe ich etwas, wird/werden aber die verschobene(n) Datei(en) wieder nicht gefunden. Und: gibt es keinen gemeinsamen Referenzpunkt, weil ein Spiel unter C:\Spiele\SpielA\a.exe liegt und das andere aber unter D:\Spiele\SpielB\b.exe, dann muß ich notwendigerweise beide Pfade vollständig angeben (*).

4. Relativ zum Festplattenstamm geht natürlich auch. Dazu schreibt man einfach die Dateisystemwurzel als Referenzpunkt vorne dran: also \Spiele\SpielA\a.exe . Verschieb ich das auf D: oder E: wird es aber auch dann wieder nicht gefunden, ES SEI DENN ich verschiebe Script UND die EXE-Datei(en). Denn das Script sucht immer relativ zum eigenen Arbeitsverzeichnis und wenn ich dann \Pfad\Datei.exe referenziere und das Script liegt unter C: irgendwo, dann wird eben C:\Pfad\Datei.exe ausgeführt; liegt es hingegen unter D: irgendwo , wird stattdessen auf DIESEM Volume die Datei im Pfad \Pfad ausgeführt. Die können auch verschieden sein. Dem Script ist das egal.




Es gibt auch noch eine Option (5). Die sieht in etwa folgendermaßen aus:

- Man legt sich einen leeren Ordner an irgendwo.
- Man erstellt mit mklink oder Ähnlichem einen Symlink auf das bzw die Verzeichnisse mit den auszuführenden EXE-Dateien darin.
- Die steckt man dann irgendwo hin und referenziert sie analog (1..4) oben nun nicht mehr über ihren tatsächlichen, sondern stattdessen über ihren "verlinkten" Pfad.

- Ändert sich der Pfad eines Verzeichnisses (oder einer Datei, wenn es nur eine eigenständige war) dann löscht man den Symlink und legt mit mklink einen neuen an, der auf den neuen Speicherort der Datei verweist.

Pro: Ist relativ schmerzlos, wenn man erstmal kapiert hat, worum es geht.

Contra: Nicht jede Software spielt da mit.

Dieser Beitrag wurde von RalphS bearbeitet: 01. Dezember 2017 - 23:13

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#4 Mitglied ist offline   rottendreams 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 01. Dezember 17
  • Reputation: 0

geschrieben 02. Dezember 2017 - 18:26

Ok Ich glaube ich ich mach das doch dann lieber von Hand installieren. Hab mal bissel Probiert aber das wird nix. Trotzdem danke für die Hilfe.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0