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, 4612 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 ..
Ähnliche Inhalte
Batch & Shell
Per Batch eine XLS-Datei in eine TXT-Datei umwandeln (5)

Frage von skiing69 zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (17)

Frage von Ammann zum Thema Windows Server ...

Vmware
gelöst Wie würdet Ihr eine ESXi Cluster Farm managen? (11)

Frage von AlFalcone zum Thema Vmware ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...