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 Batch Datei zum Suchen und Ersetzen in einer Textdatei die ein ! enthält

Mitglied: bodor21

bodor21 (Level 1) - Jetzt verbinden

18.06.2009, aktualisiert 14:19 Uhr, 10467 Aufrufe, 9 Kommentare

Hallo,

ist mal wieder eine Frage zu Suche und ersetzten. Einige Beispiele aus älteren Beiträgen funktionieren, nur das ! (Ausrufezeichen) verschwindet in der ausgegebenen Datei.

In der Datei Test.txt sind mehrere Zeilen , die so aussehen:

.
.
:Polizei=NOTRUF110,Region=1340,NR=22273,Breite=E341CC0!
:Polizei=NOTRUF110,Region=1540,NR=27873,Breite=E362CC0!

Mit der folgenden Batch funktioniert es, nur das ! (Ausrufezeichen) wird in der ausgegebenen Datei gelöscht.
Das ! (Ausrufezeichen) soll ausserdem noch in ein ; (Semikolon) ersetzt werden, wie geht das.


01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Datei=D:\Test.txt"  
03.
set "Von=:Polizei" 
04.
set "Nach=Waehle:Polizei" 
05.
set "t=%temp%\text.tmp"  
06.
if exist "%t%" del "%t%"  
07.
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & set Line=!Line:%Von%=%Nach%! & echo !Line!>>"%t%"  
08.
move /y "%t%" "%Datei%"

Das Ergebnis sollte so aussehen:

Waehle:Polizei=NOTRUF110,Region=1340,NR=22273,Breite=E341CC0;
Waehle:Polizei=NOTRUF110,Region=1540,NR=27873,Breite=E362CC0;

Danke für die Hilfe eines Anfängers

MfG

bodor
Mitglied: LAMPE1962
18.06.2009 um 16:26 Uhr
Hallo Bodor, mach Dir nicht das Leben schwer mit Batch. Gehe auf http://www.inforapid.de/ , lade Dir "Suchen&Ersetzten runter, und los gehts.

Gruß
Stefan
Bitte warten ..
Mitglied: bodor21
18.06.2009 um 16:35 Uhr
Hallo Stefan,

leider muss ich das in eine andere Batch Datei einbinden , kann das og. Programm also nicht installieren.


Danke für die schnelle Antwort

MfG

bodor
Bitte warten ..
Mitglied: bastla
18.06.2009 um 16:55 Uhr
Hallo bodor21 und willkommen im Forum!

Sollte so gehen:
01.
@echo off & setlocal 
02.
set "Datei=D:\Test.txt"  
03.
set "Von=:Polizei" 
04.
set "Nach=Waehle:Polizei" 
05.
 
06.
set "t=%temp%\text.tmp"  
07.
if exist "%t%" del "%t%"  
08.
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & call :ProcessLine 
09.
move "%t%" "%Datei%" 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
call set "Line=%%Line:%Von%=%Nach%%%" 
14.
 
15.
::Ersetzung "!" durch ";" 
16.
set "Line=%Line:!=;%" 
17.
 
18.
>>"%t%" echo %Line% 
19.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Biber
18.06.2009 um 17:14 Uhr
Moin bodor21,

willkommen im Forum.
Wenn eine Lösung des eigentlichen Problems gefragt ist (Strings mit enthaltenenem "!" sind ein bisschen zickig in Verbindung mit DelayedExpansion), dann wäre die Antwort:
  • Benutze "DelayedExpansion" nur "local", da, wo es auch benötigt wird.

01.
@echo off & setlocal disabledelayedexpansion 
02.
set "Datei=D:\Test.txt" set "Von=:Polizei" 
03.
set "Nach=Waehle:Polizei" 
04.
:: set "t=%temp%\text.tmp"  
05.
set "t=con:" 
06.
if exist "%t%" del "%t%"  
07.
for /f "usebackq delims=" %%i in ("%Datei%") do set "line=%%i" & call :ProcessLine 
08.
goto :eof 
09.
 
10.
:ProcessLine -- keine Parameter -- 
11.
   :: solange keine DelayedExpansion gesetzt: Ausrufezeichen ersetzen 
12.
   Set "Line=%Line:!=;%" 
13.
   setlocal Enabledelayedexpansion 
14.
   set Line=!Line:%Von%=%Nach%!  
15.
   echo %Line%>>"%t%"  
16.
   echo [auf echo gesetzt] move /y "%t%" "%Datei%" 
17.
   Endlocal 
18.
goto :eof
Grüße
Biber
Bitte warten ..
Mitglied: bodor21
18.06.2009 um 22:01 Uhr
Hallo Biber,

ist genau das was ich brauche --> DANKE

Eine Frage habe ich aber doch noch

Wie kann ich jede Zeile in meiner Test.txt ab einen bestimmten Wort bis zum Zeilenende löschen.
Das Wort heist: ,Breite
Die Zeilen in der Test.txt sind nicht gleichlang.

Vorher
:Polizei=NOTRUF110,Region=1540,NR=27873,Breite=E362CC0!
:Polizei=NOTRUF110,Region=1540,NR=27874553,Breite=E362C78C0!

nachher

:Polizei=NOTRUF110,Region=1540,NR=27873
:Polizei=NOTRUF110,Region=1540,NR=27874553

MfG

bodor
Bitte warten ..
Mitglied: bastla
18.06.2009 um 22:09 Uhr
Hallo bodor21!

Falls Du auch eine Anwort von mir akzeptierst, dann (ungetestet und unter der Voraussetzung, dass die Datensätze in jeder Zeile den gleichen Aufbau und Kommata als Trennzeichen haben):
01.
@echo off & setlocal 
02.
set "Datei=D:\Test.txt"  
03.
 
04.
set "t=%temp%\text.tmp"  
05.
if exist "%t%" del "%t%"  
06.
for /f "usebackq tokens=1-3 delims=," %%i in ("%Datei%") do >>"%t%" echo %%i,%%j,%%k 
07.
move "%t%" "%Datei%"
Grüße
bastla
Bitte warten ..
Mitglied: Biber
18.06.2009 um 22:19 Uhr
Moin bodor21,

ich würde an Deiner Stelle die Strategie überdenken und nicht mehr zeilenweise denken sonder eher feldweise.

Es scheint ja nur eine endliche Anzahl von "Feldern" in einer Zeile vorkommen zu können, wenn wir als Feldtrenner ein "," annehmen.
[ja, dass die Zeile mit ":" beginnt und mit "!" endet, habe ich wahrgenommen].

Dennoch bleiben x "Felder" mit dem Muster "whatever=wert" zwischen den Trennern "," übrig.

Beispiel am CMD-Prompt:
01.
>for /f "delims=, tokens=1-4" %i in (":Polizei=NOTRUF110,Region=1540,NR=27873,Breite=E362CC0!") do @echo 1[%i] 2[%j] 3[%k] 4[und nicht: %l] 
02.
1[:Polizei=NOTRUF110] 2[Region=1540] 3[NR=27873] 4[und nicht: Breite=E362CC0!]
Jedes dieser einzelnen "Felder" oder auf bätchisch "Token" %i, %j %k..... kannst Du wiederum in zwei Token "whatever" und "wert" zerlegen,
wenn Du in einer zweiten Runde als "Delims==" und "token=1,2" angibst.

Dann kannst Du auch prüfen, ob dieses whatever-token gleich "Breite" heißt und damit umgehen.

Grüße
Biber

[Edit] @bastla
wenn Du auch eine Antwort von mir akzeptierst..
Ich würde keine Antworten von Rechtsüberholern akzeptieren ...
[/Edit]
Bitte warten ..
Mitglied: bodor21
18.06.2009 um 23:02 Uhr
Hallo Ihr Antworter,

natürlich akzeptiere ich Antworten von Jeden, der mir helfen möchte )

Die Datei enthält glücklicherweise nur Datensätze mit "," als Texttrenner und es gibt Zeilen mit 2 unterschiedlichen Feldanzahl.
Da brauche ich den CMD-Promt nur 2 mal mit den unterschiedlichen Tokenanzahl durchlaufen lassen.

Werd ich dann morgen mal testen

Danke @all

MfG

bodor21

... wer lesen kann ist klar im Vorteil
Bitte warten ..
Mitglied: bodor21
28.06.2009 um 22:45 Uhr
Hallo

der Test mit den Zeilenende habe ich nicht durchgeführt, da das mir als Unwissender doch etwas kompliziert ist, bzw. ich z.Z. keine Zeit habe mich da reinzuarbeiten.
Ich lösche den Rest mit der Hand, ist bei 60 bis 150 Zeilen n o c h ... zu vertreten.

Das Suchen und ERsetzten ist auf jeden Fall voll funktionsfähig und somit gelöst.

D A N K E

MfG

bodor21
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell - In Textdatei suchen und ersetzen

gelöst Frage von Raaja89Batch & Shell5 Kommentare

Hallo Zusammen, ich habe einen Textdatei mit vielen aufeinander folgendenden Leerzeichen und wo an diversen Stellen Überschriften stehen. Ungefähr ...

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

Batch Datei - Mehrzeilige Textdatei

gelöst Frage von SchmakusBatch & Shell5 Kommentare

Hallo Zusammen, ich möchte mit einer Batch Datei eine Textdatei erstellen. Ich verwende 2 Variablen (%1, %2). Die Textdatei ...

Windows Tools

Suche Programm zum dateien suchen und Ersetzen mit Wildcat Suche

gelöst Frage von sfera-haizaWindows Tools5 Kommentare

Grüßt euch, ich nutze zzT. das Programm InfoRapid Suchen & Ersetzen um HTML / PHP Dateien zu durchsuchen bzw. ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs9 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Debian
Wie finde ich den betroffenen user
Frage von ProtectedDebian8 Kommentare

Hallo, Wie kann ich den User finden der dies verursacht hat? Betriebsystem ist Debian 7 your Server/Customer with the ...

Voice over IP
Vodafone IP Anlagenanschluss - TK-Anlage einrichten
Frage von BytedreherVoice over IP8 Kommentare

Moin Zusammen, wir hatten gestern bei uns die Umstellung auf den neuen IP Anschluss bei Vodafone. Vodafone IP Anlagenanschluss ...