Batch Batch datei die selbstständig Pfade anpasst

-KastenBrot-

Cadet 1st Year
Registriert
Juni 2016
Beiträge
13
Servus allerseits!

Ich habe für eine Lan Party eine kleine Batchdatei mit einer Auswahl geschrieben mit der man aus verschiedenen Spielen auswählen kann und diese so selbständig starten.

Mein Problem:
Ich habe meine eigenen Pfade im Code angegeben, gebe ich das Programm jetzt weiter soll das Programm den Pfad für diesen Rechner anpassen.

Die Spiele dazu liegen alle im selben Ordner auf dem Desktop und das Programm muss theoretisch nur den Benutzernamen anpassen z.B.: "C:\User\BENUTZER\Dektop\LANSpiele\pfad-im-ordner.EXE"

Danke schon mal im Voraus, LG Kasten
 
Setze doch einfach den Benutzer als Parameter, und den Pfad inklusive Variable. Wenn mich nicht alles täuscht, kann der Benutzer auch in WIndows aus einer Umgebungsvariable herausgelesen werden, somit wäre der Pfad schlichtweg "C:/User/$(whoami)/Desktop/LANSpiele/...".
 
Nette Idee, ich habe das mit Verknüpfungen im LAN Games Ordner direkt versucht, wenn ich mich richtig erinnere hat das funktioniert, wenn man den ganzen Ordner rüber kopiert. Welche Games hast du denn reingepackt? Bei mir ist es AoE2, WC3, CoD MW, Atomic Bomberman.
 
Besagte Variable ist %username%
C:\User\%username%\Dektop\LANSpiele\pfad-im-ordner.EXE

Würde es aber so machen (wenn die Spiele portable sind):
Die Spiele liegen in einem zentralen Ordner (beispielhaft):
C:\LANSpiele\Spiel1 C:\LANSpiele\Spiel2 usw.
würde eine zentrale Batch-Datei direkt unter C:\LAN legen mit entsprechender Auwahl zum Starten der einzelnen Spiele:
%~dp0Spiel1\Exe_von_Spiel1.exe

Der Anwender kann sich alles komplett in einen eigenen Ordner kopieren & die Batch liest über den Parameter %~dp0 automatisch den aktuellen Pfad aus.

//EDIT : Bin von Freeware-Games bwz. freien Portable-Games ausgegangen. Da wirds dann schon sportlicher..
 
Zuletzt bearbeitet:
DANKE!

Mit "%USERNAME%" hat es einwandfrei funktioniert, Danke für die schnellen Antworten!

Und bei mir sind drin: AoE2, mw2, CnC2, CS1.6, Graw1+2, Flatout, Trakmania, Starcraft und Unreal Turnament ;)

LG Kasten

@ryan wir haben ein paar leute bei der Lan die nichtmal wissen wie sie eine Datei entpacken XD (Kanonenfutter braucht man immer) ich glaub mit Ordner auf den Desktop ist es einfacher ^^, trzdm Danke :)
 
Zuletzt bearbeitet:
@-KastenBrot-
dafür gibt es selbstextrahierende Archive ^-^
Dann noch viel Spaß & viel Erfolg.

Noch ein kleiner Tip: Falls kein DHCP vor Ort verfügbar ist, noch ein Skript für statische IP-Adressen:
Code:
@echo off
set /p ipadresse=
netsh interface ipv4 set address "LAN-Verbindung" static 192.168.0.%ipadresse% 255.255.255.0
 
Danke :)
Die nächste stufe währe dann noch das man die Spiele per Repository herunterladen kann xD aber ich glaube das übersteigt meine Fähigkeiten, und evtl auch die von Batch ^^
 
Eigentlich wäre das relativ einfach.
Code:
...
f_rungame(){
##zu übergebende Variablen:
##SPIELEVERZEICHNIS
##AUSFÜHRBARE_DATEI
##SPIEL (=SPIELEVERZEICHNIS?)
##SERVER_IP
##SPIELEARCHIV auf Server
   HOME="/home/$(whoami)/LANSpiele"   #Arbeitsverzeichnis
   if [ -d ${HOME}/${SPIELEVERZEICHNIS} ]; then   #Wenn Verzeichnis vorhanden, dann
      ${HOME}/${SPIELEVERZEICHNIS}/${AUSFÜHRBARE_DATEI}   #Starte Spiel
   else   #Wenn nicht vorhanden, dann
      mount -t cifs //${SERVER_IP}/${SPIELEARCHIV}/ ${HOME}/net   #Freigabe einbinden
      cp ${HOME}/net/${SPIEL}.zip ${HOME}/   #Archiv kopieren
      tar -xzC ${HOME}/ -f ${HOME}/${SPIEL}.zip    #Archiv extrahieren
      rm ${HOME}/${SPIEL}.zip   #Archiv löschen
      if [ $? -ne 0 ]; then   # Abbruch bei Fehler
         echo "Fehler."
         return 1
         break
      fi
      ${HOME}/${SPIELEVERZEICHNIS}/${AUSFÜHRBARE_DATEI}   #Spiel starten
   fi
}
...

Auch mit batch wäre das zu lösen... Hier mit IF (NOT) EXIST und GOTO arbeiten.
 
Zuletzt bearbeitet:
Zurück
Oben