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

ini-Datei mit for Schleife auslesen, Zeilen, die mit Semikolon beginnen, fehlen

Frage Entwicklung Batch & Shell

Mitglied: torch88

torch88 (Level 1) - Jetzt verbinden

26.07.2009, aktualisiert 18.10.2012, 7041 Aufrufe, 4 Kommentare

Geht um folgendes:

rules.ini-Datei (Command and Conquer-Alarmstufe Rot 1) soll mittels batch-Datei bearbeitet werden.
zB Money=10000 durch Money=20000 ersetzen etc. (wir basteln bei unseren LANs gerne an den einzelnen Parametern des Games herum)
Suchen & ersetzen ist mir zu aufwändig, da teilweise 10x der gleiche Wert ersetzt werden muss und das mit einer Batch einfach userfreundlicher wäre.

OS Win XP Prof SP2

Auszug aus der Batch:

01.
: startkapital 
02.
 
03.
SET /P startkapital="Startkapital: " 
04.
 
05.
SET ersetzen="Money=10000" 
06.
 
07.
For /F "tokens=1,2 delims=" %%A in (rules.ini) Do ( 
08.
Echo %%A>>temp.tmp 
09.
If "%%A"==%ersetzen% ( 
10.
Echo Money=%startkapital%>>temp.tmp)) 
11.
pause 
12.
type temp.tmp | find /v %ersetzen%>rules.ini 
13.
 
14.
DEL temp.tmp 
15.
 
16.
GOTO menu
Nun aber folgendes Problem:

Zeilen die mit einem Strichpunkt beginnen, werden beim bearbeiten gelöscht
(fehlen bereits in der temp.tmp)

Die Zeilen mit den Strichpunkten am Anfang werden jedoch vom Game als Sprungmarken verwendet, sprich müssen vorhanden bleiben...


Bzw. als 2.te Frage:

Gibt es eine Möglichkeit, nach einem kompletten "Zeilenblock" (also mehrere aufeinanderfolgende Zeilen) zu suchen und diese zu ersetzen (meine Lösung ist ja nur für einzelne Zeilen)


Danke schon mal für eure Hilfe!

Gruß

torch
Mitglied: bastla
26.07.2009 um 13:32 Uhr
Auch Dir ein freundliches Hallo, torch88!

Versuch es mit folgender Schreibweise:
For /F "eol=§ tokens=1,2 delims=" %%A in (rules.ini) Do (
Anstelle von "§" kannst Du ein beliebiges in der Datei nicht vorkommendes Zeichen verwenden.

Hintergrund: ";" steht defaultmäßig für "end of line", wodurch der Rest der Zeile igrnoriert wird.

Grüße
bastla
Bitte warten ..
Mitglied: torch88
26.07.2009 um 13:41 Uhr
Perfekt - Danke bastla!

Noch eine Frage, weißt du zufällig wie ich die oben zusätzlich erwähnte Problemstellung lösen kann - also, dass ich nach kompletten "Zeilenblöcken" suchen kann?

Hintergrund:

Mehrere Absätze haben teils gleiche Zeilen, ich müsste diese Zeilen aber nur in einem bestimmten Block austauschen - also entweder genau die Zeile in diesem Block oder den gesamten Block "auswählen" (evtl. auch Zeile nummer xy, wenn das möglich bzw einfacher ist)

Danke!
Bitte warten ..
Mitglied: bastla
26.07.2009 um 14:04 Uhr
Hallo torch88!

Flexibelste Variante:
Je eine Texdatei "Alt.txt" und "Neu.txt" mit dem gesamten Block erstellen und das Ersetzen mit einem VBScript erledigen:
01.
Ini = "D:\rules.ini" 
02.
 
03.
Alt = "D:\Alt.txt" 
04.
Neu = "D:\Neu.txt" 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
T = fso.OpenTextFile(Ini).ReadAll 
07.
A = fso.OpenTextFile(Alt).ReadAll 
08.
N = fso.OpenTextFile(Neu).ReadAll 
09.
fso.CreateTextFile(Ini, True).Write Replace(T, A, N)
Bei Bedarf ließe sich das Ganze auch in einen Batch "einbetten", dürfte aber wohl nicht nötig sein ...

Grüße
bastla
Bitte warten ..
Mitglied: torch88
28.07.2009, aktualisiert 18.10.2012
habs mit absolutem zeilenbezug hinbekommen, siehe:

http://www.administrator.de/forum/per-echo-command-eine-bestimmte-zeile ...

aber hab keine ahnung wie ich den fehler mit der [ lösen kann...

gruß torch
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Terminalserver .ini Datei unter C:Windows (8)

Frage von geocast zum Thema Windows Server ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(5)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...