Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

In Datei mit bestimmter Endung Text ersetzen (mit Rechtsklick)

Frage Entwicklung Batch & Shell

Mitglied: duffy6

duffy6 (Level 1) - Jetzt verbinden

04.03.2010, aktualisiert 18.10.2012, 4438 Aufrufe, 6 Kommentare

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
Mitglied: Snowman25
04.03.2010 um 13:06 Uhr
Hallo duffy6

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
Bitte warten ..
Mitglied: bastla
04.03.2010, aktualisiert 18.10.2012
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
Bitte warten ..
Mitglied: Snowman25
04.03.2010 um 14:15 Uhr
Wenn der TO AEdit verwenden möchte, dann besteht der hauptteil nur noch aus einem Aufruf von AEdit mit dem Kompletten Dateipfad...
also aedit %~f1 u.s.w..
Bitte warten ..
Mitglied: bastla
04.03.2010, aktualisiert 18.10.2012
@Snowman25
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:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Files" 
03.
set "Typ=STP" 
04.
set "Von=ROT" 
05.
set "Nach=BLAU" 
06.
 
07.
set R=%temp%\Replace.vbs 
08.
>%R%  echo F=WScript.Arguments(0):Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(F).ReadAll 
09.
>>%R% echo fso.CreateTextFile(F,True).Write Replace(T,"%Von%","%Nach%") 
10.
 
11.
for %%f in ("%Ordner%\*.%Typ%") do cscript //nologo %R% "%%f"
Zur Sicherheit auch hier nochmals der Hinweis: Es wird (ohne Erstellung einer Sicherheitskopie) direkt die jeweilige Datei verändert!

Grüße
bastla
Bitte warten ..
Mitglied: Snowman25
04.03.2010 um 16:09 Uhr
Oder so. Letztendlich muss man dann am ende halt noch einen entsprechenden Eintrag in die Registry schreiben, damit die batch im Kontextmenü angezeigt wird uswusf... Findet sich in 2 Minuten über Google
Bitte warten ..
Mitglied: bastla
04.03.2010, aktualisiert 18.10.2012
... bzw im Ansatz gleich nebenan - dann kann auch noch die Schleife wegfallen und der Batch reduziert sich auf etwas in der Art:
01.
@echo off & setlocal 
02.
if /i "%~x1" neq ".STP" goto :eof 
03.
set "Von=ROT"  
04.
set "Nach=BLAU"  
05.
 
06.
set R=%temp%\Replace.vbs 
07.
>%R%  echo F=WScript.Arguments(0):Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(F).ReadAll 
08.
>>%R% echo fso.CreateTextFile(F,True).Write Replace(T,"%Von%","%Nach%") 
09.
cscript //nologo %R% %1
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft Office
Saubere HTML aus Word-Dokument (16)

Frage von peterpa zum Thema Microsoft Office ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...