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

Zeile in einer Textdatei finden und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: karniggel

karniggel (Level 1) - Jetzt verbinden

28.08.2008, aktualisiert 29.08.2008, 7107 Aufrufe, 5 Kommentare

Hallo,

habe mich bereits schon durch andere Beispiele durchgesucht, bekomme aber meine Datei nicht zum Laufen;
ich hoffe Ihr könnt mir schnell helfen:

Ich möchte in einer Textdatei test.txt eine Zeile, die mit den 4 Zeichen "OBJP" beginnt durch einen anderen Text ersetzen,
hier meine Versuche:

@echo off
for /f "delims=" %%i in (test.txt) do call :block "%%i"
goto :eof

:block
set "a=%CD%"
set "zzz=%~1"
set "z=%zzz:~0,4%"
if %z% EQU "OBJP" echo "OBJP "%a% >> xxx.txt
if %z% NEQ "OBJP" echo %zzz% >> xxx.txt

Leider wird die Zeile nicht ersetzt !?

Vielen Dank schon im Voraus.
Mitglied: bastla
29.08.2008 um 00:51 Uhr
Hallo karniggel!

Vielleicht geht's so besser:
01.
@echo off & setlocal 
02.
for /f "delims=" %%i in (test.txt) do call :block "%%i" 
03.
goto :eof 
04.
 
05.
:block 
06.
set "a=%CD%" 
07.
set "zzz=%~1" 
08.
set "z=%zzz:~0,4%" 
09.
if "%z%" EQU "OBJP" echo OBJP %a% >> xxx.txt 
10.
if "%z%" NEQ "OBJP" echo %zzz% >> xxx.txt
Grüße
bastla

[Edit] @Biber: Schön, dass Du wieder da bist - aber, von wegen Rechtsüberholer - Abkürzungsbenutzer! [/Edit]
Bitte warten ..
Mitglied: Biber
29.08.2008 um 01:04 Uhr
Moin karniggel,

willkommen im Forum.

Drei Grundregeln solltest Du beim Bätchen beachten:
  • immer mit "@echo off & setlocal" beginnen, wenn Du selbst Variablen per SET definierst
  • beim Vergleichen immer Äpfel mit Äpfeln und Birnen mit Birnen vergleichen, niemals mischen
  • niemals, wirklich niemals im Bereich "Batch & Shell" schreiben: "Vielen Dank schon im Voraus"

Okay, die Verletzung der ersten und dritten Grundregel hatte im konkreten Fall keine nachhaltigen Auswirkungen, aber der Regel-2-Verstoss hat Dich reingerissen.

if %z% EQU "OBJP" echo ...
-->Selbst wenn in %z% die 4 Zeichen OBJP stehen würden, wäre der Vergleich
if OBJP EQU "OBJP" ...
...niemals erfolgreich.

Immer beiderseits eines == oder EQU oder NEQ....-Vergleichs die Werte in die gleichen Begrenzer setzen.
Das müssen keine Anführungszeichen sein, es ginge auch ein
if [%z%] EQU [OBJP} ....
Grüße
Biber
[Edit] Biber grüßt alle altbekannten und geschätzten Rechtsüberholer! *g [/Edit]
Bitte warten ..
Mitglied: karniggel
29.08.2008 um 11:41 Uhr
Vielen Dank euch beiden,
die Datei läuft super !

Habe noch ein kleines Problem - wahrscheinlich mit der echo-Ausgabe,
diese fügt am Ende jeder Zeile noch ein Leerzeichen an.
Wie bekomme ich das noch weg?
Bitte warten ..
Mitglied: bastla
29.08.2008 um 11:52 Uhr
Hallo karniggel!

ZB so:
01.
if "%z%" EQU "OBJP" >>xxx.txt echo OBJP %a% 
02.
if "%z%" NEQ "OBJP" >>xxx.txt echo %zzz%
Achte dabei darauf, dass sich nicht am Ende der Zeile noch ein Leerzeichen befindet ...

Alternativ zu der gezeigten Schreibweise könnte es auch genügen, das Leerzeichen zwischen der Variable und den Umleitungszeichen (also hier: %a% >>) zu entfernen.

Grüße
bastla
Bitte warten ..
Mitglied: karniggel
29.08.2008 um 12:07 Uhr
Klappt hervorragend,
vielen vielen Dank !!!

Grüße
karniggel
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst Erstellungsdatum vor jede Zeile einer Textdatei schreiben (5)

Frage von freakonaleash 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 ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

Netzwerke
VPN-Server einrichten PPTPD-Einrichtung gescheitert (15)

Frage von MIlexx zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

Frage von iAmbricksta zum Thema LAN, WAN, Wireless ...