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 ersetzen per batch in einer TXT im aktuelen ordner vo die Batch liegt.

Frage Entwicklung Batch & Shell

Mitglied: xkinix

xkinix (Level 1) - Jetzt verbinden

04.07.2011 um 08:17 Uhr, 8383 Aufrufe, 11 Kommentare

Habe diesen beitrag gefunden."Suchen ersetzen per batch in einer TXT"

Hallo
Habe diesen beitrag gefunden."Suchen ersetzen per batch in einer TXT" und genau das brauche ich.
Nur kann ich das nicht umsetzen. habe alles in eine Batch datei rein kopiert aber bei mir funktioniert es nicht.

Bin neu in sachen scripte. Brauche eine batch datei die mir am besten im gleichen Ordner alle text datein durchsucht z.b. nacheinem zeichen "%" und durch dieses ersetzt "§".

In diesem Beitrag "Suchen ersetzen per batch in einer TXT" ist genau das brauche ich mit dieser zusetzlichen datei wo mann merere sachen suchen und ersetzen kann.

Ich hoffe das ich das darf.


Hallo maracapuccino und willkommen hier im (erstaunlichen ) Forum!

Das könnte so gehen (und ich meine "gehen", denn bei 1000 Ersetzungspaaren gehe ich nicht von "laufen" aus):

Quelltext | in den Speicher kopieren | drucken

@echo off & setlocal enabledelayedexpansion
set "Datei=D:\Test.txt"
set "Liste=D:\Ersetzungsliste.txt"

set "t=%temp%\text.tmp"
if exist "%t%" del "%t%"
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine
move "%t%" "%Datei%"
goto :eof

:ProcessLine
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"
if not defined L >>"%t%" echo\& goto :eof
for /f "usebackq tokens=1-2 delims=;" %%s in ("%Liste%") do set "L=!L:%%s=%%t!"
>>"%t%" echo %L%
goto :eof

Für die Datei "Ersetzungsliste.txt" wird, wie in Deinem Vorschlag oben, ";" als Trennzeichen zwischen altem und neuem Wert verwendet - sollte das Semikolon in einem der Werte selbst vorkommen, müsstest Du ein anderes Trennzeichen suchen und in der Datei und in Zeile 14 des Batches (nach "delims=") verwenden.
Mitglied: mathe172
04.07.2011 um 10:22 Uhr
Hallo,

wenn du wirklich alles so in die Batch kopiert hast, kein wunder dass es nicht funktioniert. Bei der Code-Formatierung im Forum(darfst auch du benutzen ) musst du nur den Code in dem grauen Rahmen kopieren-am einfachsten mit dem Quelltext-Link.
Versuch mal nur das zu kopieren:
@echo off & setlocal enabledelayedexpansion 
set "Datei=D:\Test.txt" 
set "Liste=D:\Ersetzungsliste.txt" 
 
set "t=%temp%\text.tmp" 
if exist "%t%" del "%t%" 
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine 
move "%t%" "%Datei%" 
goto :eof 
 
:ProcessLine 
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b" 
if not defined L >>"%t%" echo\& goto :eof 
for /f "usebackq tokens=1-2 delims=;" %%s in ("%Liste%") do set "L=!L:%%s=%%t!" 
>>"%t%" echo %L% 
goto :eof
MfG,
Mathe172
Bitte warten ..
Mitglied: xkinix
04.07.2011 um 15:15 Uhr
Hallo
habe mit dem Quelltext-Link alles markiert eine neue txt datei erzeugt und eingefügt. Habe alles mit dem Win Editor gemacht und wieder mit dem Notepad++ es funktioniert nicht die endung der datei ist .bat, ist das richtig?
Dann mann eine datei hochladen?
Vielen dank
Bitte warten ..
Mitglied: mathe172
04.07.2011 um 17:16 Uhr
Hallo,

wie hast du die Datei gespeichert? Wie schaut das Symbol der Datei aus?
Wenn du die Eigenschaften anschaust, (Rechtsklick-->Eigenschaften) welcher Dateityp wird angegeben?
Und wenn es eine Batch ist, was passiert, wenn du sie auf die Konsole (Win+R-->cmd.exe) ziehst und Enter drückst?

Mathe172
Bitte warten ..
Mitglied: xkinix
04.07.2011 um 18:06 Uhr
Hallo
Das Symbol der Datei sin Zahnräder.
Unter Eigenschaften steht das es eine Windows-Batchdatei (.bat) ist.
Unter der Konsole (Win+R-->cmd.exe) habe ich die meldung "Das System kann die angegebene Datei nicht finden."
Die 2 text dateien mit den ensprechenden bezeichnungen sind genau da auf D: wo sie sen solle.

In Der "Ersetzungsliste.txt" steht nur
r;ß
2;ö
zu erst suchen;ersetzen
ist das richtig,?
in der "Test.txt" datei steht nur ein "r" und eine "2" drinnen.
ist das richtig?
Kini
Bitte warten ..
Mitglied: bastla
04.07.2011 um 18:23 Uhr
Hallo xkinix und willkommen im Forum!

Soferne Du nur eine Zeile in der "Test.txt" hast und diese nicht mit einer Zeilenschaltung endet, wird der Batch in der obigen Form tatsächlich nicht funktionieren - ändere daher die Zeile
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do set "Line=%%i" & call :ProcessLine
auf
for /f "delims=" %%i in ('findstr /n "^" "%Datei%"') do set "Line=%%i" & call :ProcessLine
Hintergrund: Jede Zeile hat einen Anfang ("^"), aber nicht jede ein Ende ($) (siehe zur Bedeutung der Suchbegriffe "findstr /?") ...

Grüße
bastla
Bitte warten ..
Mitglied: xkinix
04.07.2011 um 18:33 Uhr
Vielen dank
es funktioniert.

Wie kann mann alle text dateine eines besimten ortner durchsuchen/ersetzen ohne das mann immer wieder den Dateinamen eintragen muß?

nochmal vielen dank
Bitte warten ..
Mitglied: bastla
04.07.2011 um 18:41 Uhr
Hallo xkinix!
Wie kann mann alle text dateine eines besimten ortner durchsuchen/ersetzen
In diesem Fall einfach noch eine weitere Schleife verwenden - ungetestet etwa so:
01.
@echo off & setlocal enabledelayedexpansion  
02.
set "Ordner=D:\" 
03.
set "Liste=D:\Ersetzungsliste.txt"  
04.
 
05.
pushd "%Ordner%" 
06.
set "t=%temp%\text.tmp"  
07.
for /f "delims=" %%d in ('dir /b *.txt') do ( 
08.
    del "%t%" 2>nul 
09.
    for /f "delims=" %%i in ('findstr /n "^" "%%d"') do set "Line=%%i" & call :ProcessLine 
10.
    move "%t%" "%%d" 
11.
12.
popd 
13.
goto :eof  
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.
for /f "usebackq tokens=1-2 delims=;" %%s in ("%Liste%") do set "L=!L:%%s=%%t!" 
19.
>>"%t%" echo %L% 
20.
goto :eof
Bitte beachten: Wenn die Ersetzungsliste ebenfalls im angesprochenen Ordner liegt, sollte sie nicht den Dateityp ".txt" haben, da sie ansonsten auch "bearbeitet" würde ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
04.07.2011 um 18:45 Uhr
Nachtrag: Variablennamen der jeweiligen Datei noch verändert (auf %%d)

Grüße
bastla
Bitte warten ..
Mitglied: xkinix
04.07.2011 um 19:00 Uhr
Zitat von bastla:
Nachtrag: Variablennamen der jeweiligen Datei noch verändert (auf %%d)

Grüße
bastla
Muss ich noch was endern,
Habe den Code in meine datei eingefügt und über die Console Laufen lassen.
Das wurde aus gegeben.
1datei wurde verschoben.

Ich mach mir einen Ordner auf D:\test
in diesem ortner befinden sich 2 oder merere .txt dateien.
Muss ich das so endern "set "Ordner=D:\test""???
Bitte warten ..
Mitglied: bastla
04.07.2011 um 19:09 Uhr
Hallo xkinix!

Ich habe inzwischen den letzten Stand des Batches (allerdings mit geändertem Speicherort der "Ersetzungsliste.txt" - diese darf, wie oben erwähnt, entweder nicht den Typ ".txt" haben oder nicht im vorgegebenen Ordner, also im Beispiel "D:\", liegen) erfolgreich getestet ...
Habe den Code in meine datei eingefügt und über die Console Laufen lassen.
Nur zur Sicherheit: Der Code sollte der alleinige Inhalt der Batch-Datei sein ...
Die Änderung des Ordnerpfades in "D:\test" in Zeile 2 wäre ok - die Zeile müsste dann so aussehen:
set "Ordner=D:\test"
Grüße
bastla
Bitte warten ..
Mitglied: xkinix
04.07.2011 um 19:24 Uhr
vielen dank
alles funktioniert.

Habe viele untertitel dateien und die haben sonderzeichen und mann kann schlecht lesen.
Jetzt mache ich das in einem rutsch.
Danke

Habe doch noch was.

Wie würde die syntaxe lauten für den aktuelen Ortner?
set "Ordner=D:\test"
set "Liste=D:\test\Ersetzungsliste.xtx" habe die endung meiner Ersetzungsliste geendert damit sie nicht kaut gemacht wird.

Trotz allem vielen dank
Bitte warten ..
Ähnliche Inhalte
Debian
DNS noch nicht aktuel
Frage von cyb0rgDebian13 Kommentare

Ich habe wiedermal einen Server gewechselt und entsprechend hat sich die IP geändert nun das problem: 90% meiner kunden ...

Batch & Shell
Wie ersetze ich in einer .txt ein Lehrzeichen mit einen Zeilenumbruch?
gelöst Frage von AlexIOTBatch & Shell4 Kommentare

Hallo Zusammen, ich hoffe Ihr könnt mir helfen: folgende Ausgangssituation: Inhalt der .txt-Datei: Vorname Nachname, Abteilungskürzel <Mailadresse>; Vorname Nachname, ...

Batch & Shell
Splitten in Batch. Wo liegt der Fehler!?
gelöst Frage von TodybearBatch & Shell4 Kommentare

Hallo Administratoren, Ich stehe vor folgendem Problem. Ich habe eine install.wim, die 4,8 GB groß ist. Nun will ich ...

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

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 5 StundenBatch & Shell7 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 7 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 22 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 23 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...