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.

Mitglied: xkinix

xkinix (Level 1) - Jetzt verbinden

04.07.2011 um 08:17 Uhr, 8504 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
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 ...

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

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 15 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 18 StundenAdministrator.de Feedback13 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...