Jump to content

Alle zeichen A finden und durch B ersetzen.


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

In BAT hab ich nix, aber in VBS. Das könnte aus einer BAT dann mittels

cscript ersetze.vbs <Pfad>

aufgerufen werden (wobei <Pfad> durch den entspr. Pfad ersetzt wird).

Hier der Code für "ersetze.vbs"

Const ForReading = 1, ForWriting = 2
Set Parameter=Wscript.Arguments

If Parameter.count > 0 then
 varPath = Parameter(0)
Else
 varPath="C:\TEMP"
End if

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(varPath)

for each file in folder.Files
 Set f = fso.OpenTextFile(file.Path, ForReading)
 Text = f.ReadAll
 Set f = fso.OpenTextFile(file.Path, ForWriting, True)
 f.Write Replace(Text, "$", "&")
next

Das Ganze natürlich noch kpl. ohne irgendwelche Fehlerbehandlungen ;)

 

...sollten in dem Ordner wirklich nur die .TXT bearbeitet werden, es jedoch auch andere Dateien geben, so ist der Code natürlich noch etwas zu erweitern...

bearbeitet von Cybquest
Anmerkung hinzugefügt
Link zu diesem Kommentar

Vielen dank dein vbs code funktioniert auch ohne bat aufruf.

 

Ich weiss nich ob ich das darf, ich habe einen code gefunden in einem ander forum der mir sehr gut gefelt allerdings habe ich es nicht zum laufen gebracht.

 

Das ist eine .bat Datei

##############################################

@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

############################

 

Die Ersetzunsliste ist so.

§;$

2;8

ö;ü

und so weiter.

 

Vielen dank im voraus.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...