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

gelöst Suchen und Ersetzen per Batch

Mitglied: m8ichael

m8ichael (Level 1) - Jetzt verbinden

16.05.2018 um 20:17 Uhr, 346 Aufrufe, 5 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
LÖSUNG 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 ..
Mitglied: m8ichael
26.05.2018 um 09:39 Uhr
So, habe das jetzt mit einem Powershell-Befehl gelöst:

01.
Powershell -Command "(Get-Content %datei%).replace('Wert=Alt', 'Wert=neu') | Set-Content %datei%"
Viele Grüße

Michael
Bitte warten ..
Ähnliche Inhalte
Entwicklung
Suchen und ersetzen als Batch oder VBA
gelöst Frage von ZinedineEntwicklung22 Kommentare

Hallo, bin hier neu im Forum und ein absoluter Laie was Programmierung betrifft Habe deswegen auch ein großes für ...

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 ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 11 StundenHumor (lol)

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 13 StundenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 1 TagErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 1 TagVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Windows Server
Domäne einsilbig mit nur einem Namen benannt - sowie AD und MX auf einer VM Kardinalsfehler?
Frage von TomTestWindows Server48 Kommentare

Hallo liebe Freunde gepflegter Probleme, seit kurzem soll ich eine Domäne verwalten die zuvor von einem IT-Dienstleister erstellt und ...

Microsoft
VPN Verbindung kann nicht aufgebaut werden
Frage von AlexderITlerMicrosoft35 Kommentare

Hallo, Ich möchte an einem unserer PCs in unserer Tochterfirma eine VPN zu unserem Netzwerk einrichten. Das schlägt allerdings ...

Windows Server
Windows Server per Web auf Daten zugreifen und verwalten
Frage von matze2090Windows Server16 Kommentare

Hallo, ich würde gerne von außen auf meinem Windows Server zugreifen um auf meine Daten zu verwalten. Meine frage ...

DNS
Gibt es eine Art DNS Proxy?
Frage von icepietDNS16 Kommentare

Hallo Nerds, Ich würde gerne folgendes machen: ts.domain.de:3389 soll auf 1.2.3.4:3389 auflösen ts2.domain.de:3389 soll auf 1.2.3.4:3390 auflösen Gibt es ...