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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 137402
Url: https://administrator.de/contentid/137402
Printed on: April 26, 2024 at 19:04 o'clock
6 Comments
Latest comment
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