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

Batch - Zeile finden und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: Domain-Jane

Domain-Jane (Level 1) - Jetzt verbinden

23.07.2013 um 21:31 Uhr, 5537 Aufrufe, 2 Kommentare

Hallo ihr,

ich habe nun eine Weile mit nem gepipten findstring rumprobiert,
aber ich denke, für das Problem verlangt die Batch wieder ne
getunte For-Schleife eines Profis...

Ich möchte in einem Batch-file nach einem String suchen und
die Zeile, die ihn enthält, durch eine andere Zeile (zwei Wörter) ersetzen.
Ein schlichtes Ersetzen der Strings reicht nicht, weil der Suchstring variiert.

Bsp.:
Fall 1
Datei.bat
Wurmloch 15
Kältemittelwarmduscher
Knopfloch 37
Hopfenpfisterei
Wurstkater
Ersatzstring: Knopfloch 36

Fall 2
Datei.bat
Wurmloch 15
Kältemittelwarmduscher
Knopfloch 42
Hopfenpfisterei
Wurstkater
Ersatzstring: Knopfloch 44

usw.

-> Knopfloch 37(42) soll also durch Knopfloch 36(44) ersetzt werden.
Das Schlüsselwort Knopfloch bleibt immer gleich. (Original- und Ersatzstring)
Die Zahlen (welche auch Buchstaben enthalten können) sind bei beiden immer unterschiedlich.

Mit Dank im Voraus,

Jane
Mitglied: Endoro
23.07.2013 um 22:47 Uhr
Servus,
kannst du mal testen:
01.
@echo off &setlocal 
02.
set "search=Knopfloch 37" 
03.
set "replace=Knopfloch 36" 
04.
set "textfile=file.txt" 
05.
set "newfile=new.txt" 
06.
 
07.
(for /f "delims=" %%i in ('findstr /n "^" "%textfile%"') do ( 
08.
	set "line=%%i" 
09.
	setlocal enabledelayedexpansion 
10.
	set "line=!line:%search%=%replace%!" 
11.
	echo(!line! 
12.
	endlocal 
13.
))>"%newfile%" 
14.
type "%newfile%"
lg
Bitte warten ..
Mitglied: Domain-Jane
24.07.2013 um 20:17 Uhr
Hi Endoro,

danke für die schnelle Antwort!
So ähnlich hatte ich es bereits.
Allerdings möchte ich nur nach dem String Knopfloch suchen, um dadurch die Zeilennummer zu erhalten
und dann die zwei Zeichenfolgen ersetzen. (Die Zahl hinter Knopfloch darf nicht im Suchstring enthalten sein,
weil sie immer unterschiedlich ist.)
Gibt es denn nicht so etwas wie ne Wildcard? Knopfloch* funktioniert leider nicht.
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
Batch bestimme Zeile einer vorherigen batch einfügen (9)

Frage von Frensche zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batsch doppelte Zeile in in Text finden und eine löschen (10)

Frage von GNLen1 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (23)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (19)

Frage von smartino zum Thema Mac OS X ...

Hyper-V
Langsames Netzwerk i210 LAN Karte (10)

Frage von Akcent zum Thema Hyper-V ...

Windows Server
Server 2016 - Kuriositäten (8)

Frage von certifiedit.net zum Thema Windows Server ...