Top-Themen

Aktuelle Themen (A bis Z)

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

Suchen und Ersetzen per Batch

Mitglied: m8ichael

m8ichael (Level 1) - Jetzt verbinden

16.05.2018 um 20:17 Uhr, 239 Aufrufe, 4 Kommentare

Hallo zusammen,

ich suche eine Lösung, um innerhalb einer Textdatei einen Wert zu suchen und anschließend zu ersetzen. Ich bin dabei auf diese Frage gestoßen:

Alte Frage

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Datei=Test.txt"  
03.
set "t=Temp.tmp"  
04.
 
05.
set "Suchen1=aaa" 
06.
set "Ersetzen1=bbb" 
07.
set "Suchen2=ccc" 
08.
set "Ersetzen2=ddd" 
09.
 
10.
if exist "%t%" del "%t%" 
11.
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine 
12.
move "%t%" "%Datei%" 
13.
goto :WEITER_IM_BATCH 
14.
 
15.
:ProcessLine 
16.
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b" 
17.
if not defined L >>"%t%" echo\& goto :eof 
18.
set WriteLine1=!L:%Suchen1%=%Ersetzen1%! 
19.
set WriteLine2=!WriteLine1:%Suchen2%=%Ersetzen2%! 
20.
>>"%t%" echo !WriteLine2! 
21.
goto :eof 
22.
 
23.
:WEITER_IM_BATCH 
24.
.......
Das ganze funktioniert allerdings nur, solange im Such-/Ersetzungstext kein "=" enthalten ist. Ich würde daher oben schon einmal die Suchausdrücke in

01.
set "Suchen1=aaa^^=xyz" 
02.
set "Ersetzen1=bbb^^=zyx" 
03.
...
ändern, aber das klappt trotzdem noch nicht ganz...

Wie müsste man den Beispielcode abändern? Ich stehe gerade bzgl. des Escapens etwas auf dem Schlauch...

Viele Grüße

Michael
Mitglied: rubberman
16.05.2018 um 23:29 Uhr
Wenn immer du Textersetzungen mit Batch vornehmen willst, du das aber einigermaßen idiotensicher tun willst/musst, dann mach es nicht mit Batch Auch andere Sprachen, wie Powershell, bieten dir ein Kommandozeileninterface und lassen sich in Batchscripts einbinden. Ebenfalls möglich sind andere Windows Scripts, wie JScript, verwurstet in diesem Tool:
JREPL.BAT

Steffen
Bitte warten ..
Mitglied: Lochkartenstanzer
17.05.2018, aktualisiert um 08:41 Uhr
Zitat von rubberman:

Wenn immer du Textersetzungen mit Batch vornehmen willst, du das aber einigermaßen idiotensicher tun willst/musst, dann mach es nicht mit Batch Auch andere Sprachen, wie Powershell, bieten dir ein Kommandozeileninterface und lassen sich in Batchscripts einbinden. Ebenfalls möglich sind andere Windows Scripts, wie JScript, verwurstet in diesem Tool:
JREPL.BAT


Oder einfach das richtige Werkzeug dafür nehmen, wie z.B. sed.

lks
Bitte warten ..
Mitglied: rubberman
17.05.2018 um 09:01 Uhr
Natürlich. Abhängig von der Umgebung (3rd party erlaubt/erwünscht, soll on-the-fly auch auf anderen Rechnern laufen etc.).

Steffen
Bitte warten ..
Mitglied: Lochkartenstanzer
17.05.2018 um 10:56 Uhr
Zitat von rubberman:

Natürlich. Abhängig von der Umgebung (3rd party erlaubt/erwünscht, soll on-the-fly auch auf anderen Rechnern laufen etc.).

Das sind Randbedingungen, die man nennen sollte, um zu dem richtigen Lösungsweg zu gelangen.

lks
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Suchen und Ersetzen mehrerer Suchbegriffe per Batch

gelöst Frage von makroll10Batch & Shell4 Kommentare

Hallo, ich habe eine Textdatei mit folgendem Inhalt (Beispiel): "Dies ist ein Text mit 1850101 oder auch mit 1750102 ...

Batch & Shell

Batch Zeile suchen und ersetzen Variabler Pfad

gelöst Frage von pi0h.kkBatch & Shell6 Kommentare

Hallo, ich stehe leider vor einem kleinen Problem was ich nicht in den Griff bekommen. Ich möchte in mehreren ...

Batch & Shell

Batch: Dateien innerhalb einer Ordnerstruktur nach einem Sting suchen und ersetzen

Frage von yousaintBatch & Shell2 Kommentare

Hallo zusammen, wie oben erwähnt, würde ich gerne innerhalb einer Ordnerstruktur (Dateien innerhalb aller Unterordner) in den Dateien nach ...

Batch & Shell

CMD: Suchen, Ersetzen und Hochzählen

gelöst Frage von ralfkauskBatch & Shell3 Kommentare

Hallo zusammen Ich habe folgendes Problem In einer Datei muss ein Wert gefunden, auf Korrektheit geprüft und evtl. ersetzt/geändert ...

Neue Wissensbeiträge
CPU, RAM, Mainboards
Neverending story
Tipp von keine-ahnung vor 16 StundenCPU, RAM, Mainboards1 Kommentar

Da kommt man mit dem fixen gar nicht mehr hinterher und die CPU erreichen wieder Rechenleistungen im Bereich des ...

Multimedia & Zubehör
AVM Fritz USB WLAN Sticks schneller einschalten
Tipp von NetzwerkDude vor 2 TagenMultimedia & Zubehör4 Kommentare

Die AVM Fritz WLAN Sticks haben in der Firmware 2 Modis: Einmal als Massenspeicher und einmal als WLAN Netzwerkkarte ...

Windows Server

Windows Server Backup schlägt fehl - Lösung 2008-2016

Tipp von BiGnoob vor 2 TagenWindows Server

Hi zusammen , ich möchte gerne einen Lösungstipp abgeben für folgenden Fehler: Lösung ist folgende:

Humor (lol)
Telekom vs. O2 - 3:2
Erfahrungsbericht von the-buccaneer vor 3 TagenHumor (lol)4 Kommentare

Unglaublich aber wahr: Nachdem mein privater Anschluss am 19.04.18 auf VOIP und VDSL umgestellt wurde, hatte ich seitdem 1,5 ...

Heiß diskutierte Inhalte
PHP
Nach Umzug zu 1und1 bekomme ich beim Eintrag in die DB Tabelle folgenden Fehler
gelöst Frage von jensgebkenPHP35 Kommentare

INSERT command denied to user 'dbo45342345342231244'@'112.127.102.073' for table 'orders'

Rechtliche Fragen
DSGVO - Impressum und Datenschutz auf Anmeldeseiten notwendig?
Frage von StefanKittelRechtliche Fragen16 Kommentare

Hallo, was mit gerade eingefallen ist. Muss man auf Anmeldeseiten auch ein Impressum und Datenschutzhinweis haben? Auch hier wird ...

Windows Userverwaltung
Problem mit Benutzerprofil
Frage von lieferscheinWindows Userverwaltung12 Kommentare

Guten Tag liebe Community, folgendes Problem habe ich: User meldet sich auf Client A an - sein Homelaufwerk verbindet. ...

Windows Server
2003er RDS Server lässt alten ThinClient nach Updates nicht mehr anmelden
Frage von KnorkatorWindows Server9 Kommentare

Hallo zusammen, wir hatten die Aufgabe, ein System (keine Domänenanbindung) zu virtualisieren welches mehrere Jahre keine Updates gesehen hat. ...