sbiesterfeldt

Schleife und suchen ersetzen

Ich habe einen Code, möchte jedoch in mehreren Dateien nacheinander suchen&ersetzen

Hallo,

ich habe den folgenden Code:

@echo off & setlocal enabledelayedexpansion
title NVP Design
cls
color 1f

set coredrive="D:\Sascha\portal.war\core"  
set classicdrive="D:\Sascha\portal.war\defaultStyleFamily\classic"  
set litedrive="D:\Sascha\portal.war\defaultStyleFamily\lite"  
set rootdrive="D:\Sascha\portal.war"  

set Datei1=%coredrive%\sideMenu.css
set Datei2=%coredrive%\sideMenu.jsp
set Datei3=%classicdrive%\portalMyPage.css

es sind ca. 50 Dateien, alternativ wären es nur *.css und *.jsp und *.txt Dateien

rem ########################################################################################################################################
:start

	title NVP Design
	cls
	echo.
	echo.
	echo                  =============== NVP Design ================
	echo                  *                                         *
	echo                  *  1 - DUNKEL                             *
	echo                  *  2 - HELL                               *
	echo                  *  3 - HINTERGRUND                        *
	echo                  *  4 - Companyname change                 *
	echo                  *  5 - About SQLMenu ^& Disclaimers        *
	echo                  *  x - Exit                               *
	echo                  *                                         *
	echo                  ===========================================
	echo                         Ctrl+C at any time will abort
	echo.
	echo.
	echo                     Select the type of SQL command to run
	echo.
	set /p sqltype=                            Your selection: 

	if '%sqltype%'=='1' goto DUNKEL  
	if '%sqltype%'=='2' goto HELL  
	if '%sqltype%'=='3' goto HINTERGRUND  
	if '%sqltype%'=='4' goto COMPANY  
	if '%sqltype%'=='5' goto ABOUT  
	if '%sqltype%'=='x' exit  
	if '%sqltype%'=='X' exit  

	
	rem (else)
	echo.
	echo                              ---INVALID ENTRY---
	echo.
	pause
	goto start

Hier beginnt der erste Suchen teil der aber auf alle Dateien bzw. Dateitypen gehen soll.

rem ########################################################################################################################################
:DUNKEL 

set /p NewColor= Neue Farbe in HEX (ohne #):

set "Datei1=%Datei1%"  
set "t=Temp.tmp"    

set "Suchen1=00285C"   
set "Ersetzen1=%NewColor%"   
 
if exist "%t%" del "%t%"   
for /f "delims=" %%i in ('findstr /n $ "%Datei1%"') do set "Line=%%i" & call :ProcessLine   
move "%t%" "%Datei1%"   
goto :done 
 
:ProcessLine 
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"   
if not defined L >>"%t%" echo\& goto :eof   
set WriteLine=!L:%Suchen1%=%Ersetzen1%!
>>"%t%" echo !WriteLine!   
goto :eof  

Hier ist nur noch das Ende verarbeitet.
rem ########################################################################################################################################
:done

	echo.
	echo.
	echo.
	echo  ====================================================================== 
	echo.
	echo   Thank you for using SQLMenu.  The selected task has been completed. 
	echo.
	echo              M - Main Menu (SQLMenu Begin Screen) 
	echo              X - Exit. 
	echo.
	echo  ====================================================================== 
	echo. 
	echo.
	set /p getputagain=                              Your selection: 

	if '%getputagain%'=='m' goto start  
	if '%getputagain%'=='M' goto start  
	if '%getputagain%'=='x' exit  
	if '%getputagain%'=='X' exit  

	rem (else)
	echo.
	echo                              ---INVALID ENTRY---
	echo.
	pause

Kann mir jemand helfen hier eine Schleife zu entwickeln die auf die Dateien bzw. die Typen die Definiert sind suchen und ersetzen?

Vielen Dank im Voraus
cls
goto done
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 140475

Url: https://administrator.de/forum/schleife-und-suchen-ersetzen-140475.html

Ausgedruckt am: 20.05.2025 um 04:05 Uhr

77559
77559 13.04.2010 um 12:08:07 Uhr
Goto Top
Hallo SBiesterfeldt,

ohne deine Vorgeschichte zu kennen ist deine Fragestellung viel zu lang und zu unklar um dir überhaupt helfen zu können/wollen.

Mir ist nicht klar womit du ein Problem hast.

Gruß
LotPings
SBiesterfeldt
SBiesterfeldt 13.04.2010 um 12:11:33 Uhr
Goto Top
Hallo LotPings,

ich möchte in mehreren Dateien (*.txt, *.css und *jsp) nach bestimmten begriffen suchen und diese mit einem Benutzerdefinierten Wert ersetzen.

Beispiel
Suchen1=00285C
Ersetzen1=%NewColor%

Suchen2=155527
Ersetzen3=%NewColor2%

usw.

Sorry, dachte je mehr Infos umso besser....

Gruß Sascha
77559
77559 13.04.2010 um 15:25:59 Uhr
Goto Top
Hallo Sascha,

purer Batch-Code ist zum suchen inbesondere in HTML-Dateien schlecht geeignet, da die dort häufig vorkommenden Sonderzeichen <>& einer besonderen Behadlung bedürfen um nicht als Batch-Anweisungen für E/A-Umleitng bzw Befehlsverkettung interpretiert zu werden.

Wenn die Dateien außerdem noch anders kodiert sind (UTF_8) wirds ganz holperig. Mit CSS kannst du doch sowieso Farb eigensschaften abstrahieren.

Wenn das häufig vorkommt machst du etwas falsch; für gelegentliche Änderungen würd ich einen Editor einsetzen der Suchen Ersetzen über mehrere Dateien beherscht. AFAIK kann das z.Bsp. Notepad++.

Gruß
Lotpings
SBiesterfeldt
SBiesterfeldt 13.04.2010 um 15:32:28 Uhr
Goto Top
ja aber die Änderungen sollen in insgesamt 50 Dateien gemacht werden, und die Funktion via Editor ist etwas kompliziert.

Wie würde denn eine Lösung für TXT dateien aussehen?