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, 4423 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...