michifox
Goto Top

Problem mit einer Auswahlbatchdatei

Hallo, bin ein Laie in Sachen Batchdatei und komme nicht weiter.

Hallo,

also ich habe eine kleine Batchauswahldatei geschrieben die auch mit fast allen Programmen die auf dem Rechner sind funktioniert. Leider aber nicht mit
dem Programm, für das ich es brauche.
Und zwar habe ich ein Computerspiel, was selbst wiederum aus 22 Spielen besteht. Man kann jedoch immer nur 10 Spiele in einer Ini-Datei freischalten, indem man die
Nummer in der Ini-Datei einträgt.(jedes einzelne Spiel hat eine Nummer). Ich wollte einfach das gesamte Spiel in mehrere Ordner kopieren(mit verschiedenen Ini-Werten)
und über meine Batchauswahl-Datei einen starten(Spiel 1-10 Taste 1,Spiel 11-20 Taste 2, usw.). Wenn aber die Ini-Datei nicht auf der selben Ebene(Ordner) wie die Batchdatei ist,läuft das Spiel gar nicht(Ini-Failed).
Aber ich brauche halt verschiedene Ini-dateien! Die Batchauswahldatei funktioniert mit allen anderen Programmen, wenn sie keine Inidatei beinhaltet.
Gibts da nen ganz einfachen Trick?

Vielen Dank, ich bin am verzweifeln.
Kommentar vom Moderator Biber am Jul 30, 2011 um 10:01:05 Uhr
Auch diesen Beitrag verschoben von "Irgendwas aus'm MediaMarkt" nach "Batch & Shell".
Das Code-Nachformatieren überlasse ich dem Beitragsersteller

Content-Key: 170465

Url: https://administrator.de/contentid/170465

Printed on: April 19, 2024 at 05:04 o'clock

Member: bastla
bastla Jul 27, 2011 at 08:39:56 (UTC)
Goto Top
Hallo michifox und willkommen im Forum!
Gibts da nen ganz einfachen Trick?
Ja - Deinen bisherigen Batch (unter Verwendung der passenden ) posten ... face-wink

Ansonsten ist auch die Ordnerstruktur noch nicht wirklich klar beschrieben.

Unabhängig davon würde ich aber vermutlich einfach die verschiedenen Varianten von ini-Dateien unter zB "ini10.ini", "ini20.ini", "ini22.ini" speichern und die jeweils benötigte Version kopieren ...

Grüße
bastla
Member: michifox
michifox Jul 28, 2011 at 00:44:32 (UTC)
Goto Top
Hallo,

dran rumprobiert, also jetzt geht gar nichts mehr, es öffnet sich nichts mehr. Hier mal die Batchdatei:

@echo off
:start
@echo Spiel 1-10 = 1, Spiel 11-20 = 2, Spiel 21,22 = 3

set /p eingabe=

if %eingabe% == 1 goto prog1
if %eingabe% == 2 goto prog2
if %eingabe% == 3 goto prog3

if %eingabe% == n goto progn

if %eingabe% == e goto ende

@echo falsche Einhabe
goto start

:prog1
start"C:\Dokumente und Einstellungen\Administrator\Desktop\programm1"

goto ende

:prog2
start"C:\Dokumente und Einstellungen\Administrator\Desktop\Programm2"
goto ende

:prog3
start"C:\Dokumente und Einstellungen\Administrator\Desktop\Programm3"


:ende
exit

und das ist die Ini Datei von dem Spiel:

  1. the NetBIOS-name of computer with srv2.exe launched
g_szServerAddr = Test
  1. LAN thread initialization delay in millisecond
g_iStartDelay = 0
  1. game selector(choose game 1-22, see pictures in folder "pictures" in current directory)
g_GameSet = 1
g_GameSet[1] = 2
g_GameSet[2] = 3
g_GameSet[3] = 4
g_GameSet[4] = 5
g_GameSet[5] = 6
g_GameSet[6] = 7
g_GameSet[7] = 8
g_GameSet[8] = 9
g_GameSet[9] = 10

g_SubstPacket[2] = 1
g_SubstPacket[3] = 1
g_SubstPacket[4] = 1
g_SubstPacket[5] = 1
g_SubstPacket[6] = 1
g_SubstPacket[7] = 1
g_SubstPacket[8] = 1
g_SubstPacket[9] = 1
g_SubstPacket[10] = 1
g_SubstPacket[11] = 1
g_SubstPacket[12] = 1
g_SubstPacket[13] = 1
g_SubstPacket[14] = 1
g_SubstPacket[15] = 1

Für Hilfe wäre ich sehr dankbar.
Member: bastla
bastla Jul 28, 2011 at 15:27:38 (UTC)
Goto Top
Hallo michifox!

Abgesehen von der Darstellung (den Hinweis zur Formatierung - lässt sich auch im Nachhinein noch leicht einfügen - hast Du oben vermutlich übersehen) Deines Batches kann ich diesem auch keine weitere Information hinsichtlich des genannten Spieles bzw des benötigten Speicherortes der ini-Datei entnehmen - mein Ansatz wäre aber weiterhin, das Spiel und die ini-Datei an ihrem Platz zu lassen und je nach Auswahl einfach vorweg eine angepasste zB "ini20.ini" der Art
# the NetBIOS-name of computer with srv2.exe launched
g_szServerAddr = Test
# LAN thread initialization delay in millisecond
g_iStartDelay  = 0
# game selector(choose game 1-22, see pictures in folder "pictures" in current directory) 
g_GameSet = 11
g_GameSet[1] = 12
g_GameSet[2] = 13
g_GameSet[3] = 14
g_GameSet[4] = 15
g_GameSet[5] = 16
g_GameSet[6] = 17
g_GameSet[7] = 18
g_GameSet[8] = 19
g_GameSet[9] = 20
 
g_SubstPacket[2] = 1
g_SubstPacket[3] = 1
g_SubstPacket[4] = 1
g_SubstPacket[5] = 1
g_SubstPacket[6] = 1
g_SubstPacket[7] = 1
g_SubstPacket[8] = 1
g_SubstPacket[9] = 1
g_SubstPacket[10] = 1
g_SubstPacket[11] = 1
g_SubstPacket[12] = 1
g_SubstPacket[13] = 1
g_SubstPacket[14] = 1
g_SubstPacket[15] = 1
über die "Original"-ini-Datei zu kopieren und dann das Spiel wie gewohnt zu starten.

Grüße
bastla
Member: michifox
michifox Jul 29, 2011 at 19:01:07 (UTC)
Goto Top
Hallo,

leider kenn ich mich mit programmieren nicht so gut aus, wie man sicher merkt, komme mehr aus der Elektronikecke.
Können Sie mir vielleicht mal ein kleines Muster posten, wie man eine Ini-Datei überschreibt. z.B. wie man aus
g_GameSet = 11

g_gameSet = 22

zaubert.

Vielen Dank

Michifox
Member: bastla
bastla Jul 29, 2011 at 20:00:47 (UTC)
Goto Top
Hallo michifox!

Einfach die folgenden 3 Dateien als "ini10.ini", "ini20.ini" und "ini22.ini" im Spieleordner speichern
# the NetBIOS-name of computer with srv2.exe launched
g_szServerAddr = Test
# LAN thread initialization delay in millisecond
g_iStartDelay = 0
# game selector(choose game 1-22, see pictures in folder "pictures" in current directory) 
g_GameSet = 1
g_GameSet[1] = 2
g_GameSet[2] = 3
g_GameSet[3] = 4
g_GameSet[4] = 5
g_GameSet[5] = 6
g_GameSet[6] = 7
g_GameSet[7] = 8
g_GameSet[8] = 9
g_GameSet[9] = 10

g_SubstPacket[2] = 1
g_SubstPacket[3] = 1
g_SubstPacket[4] = 1
g_SubstPacket[5] = 1
g_SubstPacket[6] = 1
g_SubstPacket[7] = 1
g_SubstPacket[8] = 1
g_SubstPacket[9] = 1
g_SubstPacket[10] = 1
g_SubstPacket[11] = 1
g_SubstPacket[12] = 1
g_SubstPacket[13] = 1
g_SubstPacket[14] = 1
g_SubstPacket[15] = 1
# the NetBIOS-name of computer with srv2.exe launched
g_szServerAddr = Test
# LAN thread initialization delay in millisecond
g_iStartDelay  = 0
# game selector(choose game 1-22, see pictures in folder "pictures" in current directory) 
g_GameSet = 11
g_GameSet[1] = 12
g_GameSet[2] = 13
g_GameSet[3] = 14
g_GameSet[4] = 15
g_GameSet[5] = 16
g_GameSet[6] = 17
g_GameSet[7] = 18
g_GameSet[8] = 19
g_GameSet[9] = 20
 
g_SubstPacket[2] = 1
g_SubstPacket[3] = 1
g_SubstPacket[4] = 1
g_SubstPacket[5] = 1
g_SubstPacket[6] = 1
g_SubstPacket[7] = 1
g_SubstPacket[8] = 1
g_SubstPacket[9] = 1
g_SubstPacket[10] = 1
g_SubstPacket[11] = 1
g_SubstPacket[12] = 1
g_SubstPacket[13] = 1
g_SubstPacket[14] = 1
g_SubstPacket[15] = 1
# the NetBIOS-name of computer with srv2.exe launched
g_szServerAddr = Test
# LAN thread initialization delay in millisecond
g_iStartDelay  = 0
# game selector(choose game 1-22, see pictures in folder "pictures" in current directory) 
g_GameSet = 21
g_GameSet[1] = 22
g_GameSet[2] = 
g_GameSet[3] = 
g_GameSet[4] = 
g_GameSet[5] = 
g_GameSet[6] = 
g_GameSet[7] = 
g_GameSet[8] = 
g_GameSet[9] = 
 
g_SubstPacket[2] = 1
g_SubstPacket[3] = 1
g_SubstPacket[4] = 1
g_SubstPacket[5] = 1
g_SubstPacket[6] = 1
g_SubstPacket[7] = 1
g_SubstPacket[8] = 1
g_SubstPacket[9] = 1
g_SubstPacket[10] = 1
g_SubstPacket[11] = 1
g_SubstPacket[12] = 1
g_SubstPacket[13] = 1
g_SubstPacket[14] = 1
g_SubstPacket[15] = 1
und dann vor dem Starten des Spieles zB mit
copy "C:\Spieleordner\ini20.txt" "C:\Spieleordner\Original.ini"
die jeweils benötigte ini-Datei kopieren (wie Ordner und Datei im Original heißen weiß ich leider nicht, daher bitte entsprechend anpassen) ...

Grüße
bastla

P.S.: Eigentlich ist hier das "Du" üblich ...face-wink
Member: michifox
michifox Jul 29, 2011 at 21:13:48 (UTC)
Goto Top
Vielen Dank
Sorry, hatte auch erst du geschrieben, aber habs dann ausgetauscht, wollte förmlich bleiben.
Also hab das gerade mal mit dem kopieren probiert, was auch einwandfrei funktioniert. Problem ist, das er mit der o.a. Batch das Programm nicht startet.
Kann aber keinen Fehler erkennen.

mfg
michifox
Member: bastla
bastla Jul 29, 2011 at 21:19:46 (UTC)
Goto Top
Hallo michifox!
Problem ist, das er mit der o.a. Batch das Programm nicht startet.
Ev wird der Programmordner als aktueller Ordner benötigt:
cd /d "C:\Spieleordner"  
copy "ini20.txt" "Original.ini"  
start "" "Spiel.exe"  
Grüße
bastla
Member: michifox
michifox Jul 29, 2011 at 22:03:22 (UTC)
Goto Top
Hallo,

super, jetzt klappt alles, wenn die exe Datei ohne start aufgerufen wird funktioniert alles.
Eine Frage hätte ich noch, wenn der Rechner hochfährt(windows XP), hat er bis zum Windowszeichen ein volles Bild. Danach verschiebt sich irgendwie alles
nach rechts und ich seh nur 70% vom Desktop. Sobald ich ein Programm starte füllt sich der ganze Bildschirm wieder.
Gibts da irgendwo ne Einstellung?

Vielen Vielen Dank
Michifox
Member: bastla
bastla Jul 30, 2011 at 08:19:58 (UTC)
Goto Top
Hallo michifox!
Danach verschiebt sich irgendwie alles nach rechts und ich seh nur 70% vom Desktop. Sobald ich ein Programm starte füllt sich der ganze Bildschirm wieder.
Gibts da irgendwo ne Einstellung?

Das ist ein Thema für einen neuen Beitrag ...

Grüße
bastla