Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch-Datei: Mehrmals Text verändern und dann noch weiter ausführen

Frage Entwicklung Batch & Shell

Mitglied: CrazyCat

CrazyCat (Level 1) - Jetzt verbinden

11.02.2007, aktualisiert 18.10.2012, 9356 Aufrufe, 9 Kommentare

Batch-Datei mit mehreren Aktionen, u.a. Text ersetzen, dann anderes Programm starten

Hallo zusammen,

ich weiss, dass vor allem Biber jetzt wohl stöhnen wird. Ich hab ja bereits ein wenig gesucht, so ist es nicht, aber nicht wirklich Hilfe gefunden. Zudem bin ich Anfänger in der Programmierung von Batch-Dateien (zweites kollektives Stöhnen? ), und blick nicht wirklich durch.

Worum es geht:

Ich spiele bei einem Online-Spiel mit. Für dieses habe ich zwei Accounts, nur einer ist jeweils in der player.ini verankert - je nachdem, was zuletzt als Login feststand. Ich möchte, statt das jedes Mal per Hand im Login-Fenster neu eingeben zu müssen, also per Knopfdruck Account-Name 1 und Passwort 1 durch Account-Name 2 und PW 2 ersetzen lassen, und umgekehrt, je nachdem, welche Bat ich starte.
Der Umweg über rename und copy (also Dateientausch direkt, zwei .ini durch ein temp-Verzeichnis) wäre, soviel hab ich verstanden, furchtbar kompliziert. Den Batch Replacer hab ich mir angesehen, der lässt aber nur eine Änderung der Datei in eine Richtung zu. Zudem muss ich den manuell bedienen und wohl auch beenden, und dann soll die Batch-Datei ja auch weiterlaufen - das Spiel eben per directconnect starten.

Ersetzt werden müsste jedes Mal Name, evtl. Email und Passwort.

Player Name=Name
Email=Email
Password=passwort

Danach soll er "im Text weitermachen", sprich, das Spiel starten, die Logs sichern. All das, was er jetzt auch tut.

Könnt Ihr mir, bei aller Nerverei durch eben diese recht ähnlichen Fragen, bitte helfen?
Das wäre grossartig.

Vielen Dank im Voraus,

Cat

PS: Und ja, ich bin zwar eine Frau, aber ich geb ein Feedback ab, Biber, versprochen ;)
Egal, wie die Antwort ausfällt.
Mitglied: bastla
11.02.2007 um 08:50 Uhr
Hallo CrazyCat und willkommen im Forum!

Verstehe ich es so richtig, dass sich die beiden Konten nur durch die 3 angegebenen Zeilen in einer einzigen ini-Datei unterscheiden, oder gibt es (je nach Spielstand etc) in den .ini-Dateien auch andere Änderungen zu berücksichtigen? Hintergrund der Frage: Wenn der Rest der .ini konstant ist, genügten eigentlich 2 "Vorlagen", von denen die jeweils Benötigte in den Spiele-Ordner kopiert würde.

Grüße
bastla

P.S.: Ich wüsste übrigens nicht, was die Tatsache, dass Du eine Frau bist (was übrigens ohne Deinen dezenten Hinweis noch nicht einmal aus Deinem Profil abzuleiten gewesen wäre), hier für eine Rolle spielen sollte ...
Bitte warten ..
Mitglied: miniversum
11.02.2007, aktualisiert 18.10.2012
ich würde es ähnlich wie hier machen:
http://www.administrator.de/forum/mit-batch-scriptzeile-in-.txt-%c3%a4n ...

entweder eine Batch anlegen die fragt ob Spieler 1 oder 2 genommen werden soll udnd ann eben per echo die Daten von 1 bzw. 2 in eine Player.ini schreiben und den Rest dranhängen, wenn der immer gleich ist. Danach das Spiel starten.
Oder halt 2 batches schreiben, für jeden Spieler eine.

Alternativ eben das jedesmalige hin udn her kopieren vershciedener Player.ini's. ich weiß nicht was daran so schwierig sein sollte wenn du es in der Form machst:

copy c:\spieler1\player.ini c:\spiel\player.ini
c:\spiel\spiel.exe
copy c:\spiel\player.ini c:\spieler1\player.ini

Für den Zweiten Spieler entsprechend. Dann hast du 2 batches, bzw. i mit auswahl und das wars.

miniversum
Bitte warten ..
Mitglied: CrazyCat
11.02.2007 um 12:31 Uhr
Hallo Ihr beiden,

erstmal vielen herzlichen Dank für die superschnellen Antworten!

@bastla: Das war mehr oder weniger ein Scherz, weil Biber in einem anderen Beitrag vergeblich auf ein Feedback gewartet hat und dann meinte "Typisch Frau" oder so

Und ja, ich wollte zwei Batch-Dateien. Und wenn miniversum recht hat... ich bin so ein Schaf.
Da werkel ich gestern ewig mit player1.ini und player2.ini und copy und rename und if exist herum... und bräuchte, nach Eurer Lösung, ja nur zwei unterschiedlich benannte _Ordner_, aus denen ich die modifizierten inis kopiere...*haut sich gegen die Stirn*

Vielen Dank - Ihr habt mir einen weit einfacheren Weg gezeigt. Zehn Zeilen-Tausch gegen drei...

Zu dem Link, miniversum: Wäre auch möglich, aber eine manuelle Eingabe wollte ich ja vermeiden, faul, wie ich bin

Mille grazie, und einen wunderbaren Tag Euch noch.
Ich probier das gleich aus und geb Euch dann (vermutlich unnötigerweise, das muss einfach funktionieren) noch ein Feedback.

Lieben Gruss,

Cat
Bitte warten ..
Mitglied: Biber
11.02.2007 um 12:43 Uhr
[Kommentar inzwischen obsolet..
Nur weil ich es schon fertig getippt hatte... habe inzwischen auch CrazyCat's Antwort gelesen]

Moin CrazyCat,

ich würde mich bastla und miniversum anschliessen, was die Strategie angeht.
Ein dateiweises Austauschen ist mit Batch einfacher als ein zeilenweises/wortweises Ersetzen in einer Datei.

Für mich ist das ein Szenario mit 3, maximal 5 Dateien, die im Spiel sind.
Angenommen, Deine Accounts heißen "CrazyCat" und "EvenCrazierCat", dann hättest Du:
- eine Profil.ini von letzten Spiel, in der eintweder der eine ohne andere Account steht.
- und Du kannst Dir eine Account1.ini und eine Account2.ini basteln als Vorlage für jeden der beiden Spielerinnen-Namen.
- Datei 4 und 5, die ich sicherheitshalber vorsehen würde, sind die jeweils letzten aktuellen Sicherungen der funktionierenden Profil.ini

Damit wäre eine grobe Skizze für den Spiel-Start-Batch:
01.
@Echo off & setlocal 
02.
REM Feststellen und Anzeigen, was aktuell in der profil.ini steht... 
03.
Findstr /i /c:"Player Name=CrazyCat"           cat\profil.ini>nul && Set "last=CrazyCat" && echo Aktuelles Profil ist CrazyCat 
04.
Findstr /i /c:"Player Name=EvenCrazierCat" cat\profil.ini>nul && Set "last=EvenCrazierCat" && echo Aktuelles Profil ist EvenCrazierCat 
05.
Set /p ChgProfile="Profil [0=so lassen 1=CrazyCat_last" 2=CrazyCat_Vorlage 3=EvenCrazierCat_last 4=EvenCrazierCat_Vorlage]" 
06.
if [%ChgProfile%]==[0]  goto :eof 
07.
:: sonst: letztes Profil sichern 
08.
If [%last%] NEQ [] copy /y cat\profil.ini cat\%last%_last.ini  
09.
if [%ChgProfile%]==[1] copy /y cat\CrazyCat_last.ini cat\profil.ini  
10.
if [%ChgProfile%]==[2] copy /y cat\CrazyCat_Vorlage.ini cat\profil.ini  
11.
if [%ChgProfile%]==[3] copy /y cat\EvenCrazierCat_last.ini cat\profil.ini  
12.
if [%ChgProfile%]==[4] copy /y cat\EvenCrazierCat_Vorlage.ini cat\profil.ini  
13.
... 
14.
...Start_des_Onlinespiels
Ob es Sinn macht, die "...Vorlage.ini"s mitzuschleppen, weiß ich nicht.
Aber ich würde auf jeden Fall die letzten funktionierenden Profil.inis verwenden, weil dort vielleicht bei neueren Onlinespiel-Versionen neuere Einträge hinzukommen.

Gruss Biber
Bitte warten ..
Mitglied: miniversum
11.02.2007 um 13:48 Uhr
na mit rename würds ja auch gehen:

rename c:\spiel\player1.ini c:\spiel\player.ini
c:\spiel\spiel.exe
rename c:\spiel\player.ini c:\spiel\player1.ini

und entsprechend für spieler2

miniversum
Bitte warten ..
Mitglied: CrazyCat
11.02.2007 um 13:53 Uhr
Hallo Biber

ich hab den ersten Tip ausprobiert, und er funktioniert - danke ihr zwei.

Allerdings ist dein Argument, die .ini könnte sich ja auch mal ändern, recht zwingend.
Das wäre also die weit elegantere Lösung.
Ich dachte mir irgendwie, dass es mit Variablen und "find" in irgendeiner Form gehen muss, hab das gleiche im Prinzip aber eben mit copy, rename und if exist probiert *schmunzel*

So wie ich das verstehe, muss ich für die bats nur jeweils den Eintrag:
if [%ChgProfile%]==[0] goto :eof
entsprechend abändern, je nachdem, was ich eingetragen haben will?

Das "="Profil" gibt mir allerdings noch Rätsel auf:
Set /p ChgProfile="Profil

In jedem Fall vielen lieben Dank, Biber.

Lieben Gruss,

Cat


EDIT: Ah..er fragt ab. Das wollte ich allerdings vermeiden - dann würde es zwar auch mit einer Bat gehen...
Mal sehen, ob ich das jetzt so umgemodelt bekomm, dass er zwar sichert, aber nicht abfragt - mit zwei Batches...
Bitte warten ..
Mitglied: CrazyCat
11.02.2007 um 15:15 Uhr
Soo - nochmals hallo von der nervigen, verrückten Katze

Biber, vielleicht sollte ich voranschicken, dass ich bei BASIC damals schon kläglich versagt hab...
Zu dumm, um Zusammenhänge einfach zu erkennen, fürchte ich. Aber ich geb mir Mühe.
Meinen vorhergehenden Beitrag kann man getrost ignorieren..Schwachsinn.

Mal sehen, ob ich das jetzt so richtig verstanden hab:

Ich brauche eine CrazyCat_Vorlage.ini und eine EvenCraziestCat_Vorlage.ini bereits im Ordner, das sind die präparierten.
Am Anfang muss ich logischerweise zwingend 3 bzw. 4 benutzen, damit er beide Vorlagen als _last speichern kann (oder ich log manuell einmal um). Dient auch später als Sicherheit, falls die player.ini und sämtliche _last irgendwie zerschossen sind, richtig? Sonst werden die nie gebraucht (?)

Mit 1 und 3 veranlasse ich ihn, die aktuelle player.ini je nach Inhalt als CrazyCat_last oder EvenCraziestCat_last zu sichern, und gleichzeitig wird die vorhandene _last in die profil.ini umbenannt.

Soweit, so gut, das funktioniert auch - und eine Abfrage bringt mich nicht um.

Klar wäre es fein, wenn er sichern würde, ohne mich gross erst zu fragen, dann halt über zwei Batches (player1.bat und player2.bat). Das ist bestimmt auch kinderleicht zu ändern, aber im Augenblick hab ich mehr als nur ein Brett vorm Kopf.

Die Änderungen wegen des connects - da fehlt bei dem einen Account noch ein Anhang, bekomm ich sicher mit einer "goto"-Erweiterung bei den "if" hin.
(z. B. if [%ChgProfile%]==[4] copy /y EvenCraziestCat_last.ini player.ini goto Einloggen2
if [%ChgProfile%]==[1] copy /y CrazyCat_last.ini player.ini goto Einloggen1

:Einloggen1
spiel.exe +connect server:ip

:Einloggen2
spiel.exe +connect server:ip -dmc +password )

(testet das erstmal)

Vielen Dank nochmal

Lieben Gruss,

eine Katze mit rauchendem Kopf...
Bitte warten ..
Mitglied: CrazyCat
11.02.2007 um 16:13 Uhr
Guten..Tag

Es funktioniert. Eindeutig, prima und gut. Mit Abfrage, aber egal.

den goto musste ich lediglich noch mit && anhängen - if ... && goto Einloggen1
(für jemanden, ders nachmachen will und ebenso viel Ahnung hat, wie ich)

Ein ganz herzliches Dankeschön nochmal an Euch drei!

Lieben Gruss,

Cat
Bitte warten ..
Mitglied: Biber
11.02.2007 um 16:25 Uhr
Prima, CrazyCat,

ich hatte auch schon (wahrscheinlich genau wie miniversum und bastla) vor einer Stunde überlegt,
ob ich nochmal beim lauten Überlegen helfe oder ob Du es allein zum Fliegen bekommst...
Ich war auch ganz zuversichtlich, dass Du es allein gebacken bekommst - zu Recht, wie zu sehen ist.

Dann werde ich den Beitrag jetzt guten Gewissens schliessen.

Schönen Sonntag noch und Danke an alle
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...