In Datei mit bestimmter Endung Text ersetzen (mit Rechtsklick)
Batch Endung Ersetzen
Hallo zusammen,
ich möchte folgendes tun:
In Dateien mit einem bestimmten Dateityp (*.STP) möchte ich das Vorkommen eines bestimmten Textes ("ROT") durch einen anderen Text ("BLAU") ersetzen.
Das ganze soll am besten unter Windows XP mit Rechtsklick auf (nur) diesen Dateityp möglich sein.
Also einen Filter in der Batchdatei, dass diese nur ausgeführt wird, wenn der Dateityp ("STP") stimmt.
Wie könnte denn der Batch-Code dazu aussehen?
Danke für Eure Hilfe
duffy6
Hallo zusammen,
ich möchte folgendes tun:
In Dateien mit einem bestimmten Dateityp (*.STP) möchte ich das Vorkommen eines bestimmten Textes ("ROT") durch einen anderen Text ("BLAU") ersetzen.
Das ganze soll am besten unter Windows XP mit Rechtsklick auf (nur) diesen Dateityp möglich sein.
Also einen Filter in der Batchdatei, dass diese nur ausgeführt wird, wenn der Dateityp ("STP") stimmt.
Wie könnte denn der Batch-Code dazu aussehen?
Danke für Eure Hilfe
duffy6
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137402
Url: https://administrator.de/contentid/137402
Ausgedruckt am: 25.11.2024 um 02:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo @duffy6
Ist mal ein Anfang. Hauptteil zum ersetzen fehlt noch...
Gruß
Snow
if exist findlines.line (
:doesexist
Echo Achtung. Zeilennummern-Datei bereits vorhanden!
Echo Löschen? (Y/N)
set /p delline=
if /I X%delline%==Xy (
del findlines.line
goto start
)
if /I X%delline%==Xn goto start
goto doesexist
)
:start
if X%~x1==X.stp (
more %1|findstr /N ROT>findlines.line
) else (
Echo %1 ist keine .STP-Datei!
)
Ist mal ein Anfang. Hauptteil zum ersetzen fehlt noch...
Gruß
Snow
Hallo duffy6!
Derartige Fragen kommen hier ja ganz selten - aber wenigstens einmal hatten wir doch schon etwas Ähnliches:Suchen und Ersetzen per Batch (variable Dateinamen, feste Strings) ...
Grüße
bastla
Derartige Fragen kommen hier ja ganz selten - aber wenigstens einmal hatten wir doch schon etwas Ähnliches:Suchen und Ersetzen per Batch (variable Dateinamen, feste Strings) ...
Grüße
bastla
@Snowman25
... oder, um es kurz zu machen, die angepasste Version davon:
Zur Sicherheit auch hier nochmals der Hinweis: Es wird (ohne Erstellung einer Sicherheitskopie) direkt die jeweilige Datei verändert!
Grüße
bastla
Wenn der TO AEdit verwenden möchte ...
Ev auch eine Option; es sollte aber eigentlich auch der Batch im verlinkten Beitrag genügen ...... oder, um es kurz zu machen, die angepasste Version davon:
@echo off & setlocal
set "Ordner=D:\Files"
set "Typ=STP"
set "Von=ROT"
set "Nach=BLAU"
set R=%temp%\Replace.vbs
>%R% echo F=WScript.Arguments(0):Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(F).ReadAll
>>%R% echo fso.CreateTextFile(F,True).Write Replace(T,"%Von%","%Nach%")
for %%f in ("%Ordner%\*.%Typ%") do cscript //nologo %R% "%%f"
Grüße
bastla
... bzw im Ansatz gleich nebenan - dann kann auch noch die Schleife wegfallen und der Batch reduziert sich auf etwas in der Art:
Grüße
bastla
@echo off & setlocal
if /i "%~x1" neq ".STP" goto :eof
set "Von=ROT"
set "Nach=BLAU"
set R=%temp%\Replace.vbs
>%R% echo F=WScript.Arguments(0):Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(F).ReadAll
>>%R% echo fso.CreateTextFile(F,True).Write Replace(T,"%Von%","%Nach%")
cscript //nologo %R% %1
bastla