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

Zeichen in einer txt datei finden und ändern

Frage Entwicklung Batch & Shell

Mitglied: fitzodil

fitzodil (Level 1) - Jetzt verbinden

21.08.2008, aktualisiert 22.08.2008, 4601 Aufrufe, 4 Kommentare

Hallo,

ich möchte gern ein Batch file, was folgendes realisert.

Eine Datei xxx.txt soll eingelesen werden.

Anschliesend soll in dieser xxx.txt datei nach einer Zeichenfolge "50000" gesucht werden und immer wenn diese Zeichenfolge
gefunden wird, soll dieser mit einem Zähler innerhalb der Batch Datei hochgezählt werden.

Beispiel:
xxx.txt
hdsjlfhjdfjds50000dlkfhkdlsjflkd50000
jkfhgkjfdhg50000zdf


Batch Datei läuft und Zähler ist bei 50001

Ergebnis:
hdsjlfhjdfjds50001dlkfhkdlsjflkd50001
jkfhgkjfdhg50001zdf

Gibt es die Möglichkeit, sowas zu realisieren ohne über temporäre Dateien oder neue Dateien zu gehen?
Es muss die vorhandene Datei überschrieben und entsprechend angepasst werden.


Vielen Dank und viele Grüße
Andreas
Mitglied: bastla
21.08.2008 um 11:13 Uhr
Hallo fitzodil und willkommen im Forum!

Gibt es die Möglichkeit, sowas zu realisieren ohne über temporäre Dateien oder neue Dateien zu gehen?
Weshalb willst Du eigentlich Temporärdateien vermeiden? Mit native Batch ist das IMHO nicht möglich - dazu bräuchte es einen Hexeditor mit Kommandozeilensteuerung oder zumindest ein VBScript.

Abgesehen davon finde ich Dein Beispiel widersprüchlich: Nach Deiner Beschreibung (die sich ja nur auf eine einzelne Datei bezieht) hätte ich eigentlich als Ergebnis
hdsjlfhjdfjds50001dlkfhkdlsjflkd50002
jkfhgkjfdhg50003zdf
erwartet. Dass jeweils der selbe Wert (50001) eingetragen wird, wäre aus meiner Sicht nur sinnvoll, wenn durch diesen Batch mehrere Textdateien zu bearbeiten wären.

Grüße
bastla
Bitte warten ..
Mitglied: fitzodil
21.08.2008 um 13:42 Uhr
Temporäre Dateien will ich vermeiden, da die vorhandene Datei ein besonderes Format hat, was nicht angegriffen werden soll. Daher am besten direkt in die Datei schreiben.

Die 50000 kommt mehrere male in der Textdatei vor und ist über mehrere Zeilen verteilt.
(Siehe Beispiel oben)

Es muss realisert werden, dass genau in dieser Datei alle Stellen wo 50000 vorkommt mit 50001 ersetzt wird.

Ist das möglich?
Bitte warten ..
Mitglied: bastla
21.08.2008 um 21:58 Uhr
Hallo fitzodil!

Die Technik wird Dir vielleicht bekannt vorkommen :
01.
@echo off & setlocal 
02.
set "Datei=D:\Deine Textdatei.txt" 
03.
set "Von=50000" 
04.
set "Nach=50001" 
05.
 
06.
set R=%temp%ReplaceInFile.vbs 
07.
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
08.
cscript //nologo %R% "%Datei%" "%Von%" "%Nach%"
Grüße
bastla
Bitte warten ..
Mitglied: fitzodil
22.08.2008 um 07:28 Uhr
Super!. Vielen Dank für die schnelle Hilfe. Ein großes LOb an dieses Forum und vor Allem an bastla.

Danke.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Webentwicklung
HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
gelöst In Batchdatei Variablen befüllen - mit Werten aus einer TXT-Datei (6)

Frage von donnyS73lb zum Thema Batch & Shell ...

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

Frage von noah1400 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...