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

Schleife und suchen ersetzen

Frage Entwicklung Batch & Shell

Mitglied: SBiesterfeldt

SBiesterfeldt (Level 1) - Jetzt verbinden

13.04.2010 um 11:25 Uhr, 3364 Aufrufe, 4 Kommentare

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

Hallo,

ich habe den folgenden Code:

01.
@echo off & setlocal enabledelayedexpansion 
02.
title NVP Design 
03.
cls 
04.
color 1f 
05.
 
06.
set coredrive="D:\Sascha\portal.war\core" 
07.
set classicdrive="D:\Sascha\portal.war\defaultStyleFamily\classic" 
08.
set litedrive="D:\Sascha\portal.war\defaultStyleFamily\lite" 
09.
set rootdrive="D:\Sascha\portal.war" 
10.
 
11.
set Datei1=%coredrive%\sideMenu.css 
12.
set Datei2=%coredrive%\sideMenu.jsp 
13.
set Datei3=%classicdrive%\portalMyPage.css
es sind ca. 50 Dateien, alternativ wären es nur *.css und *.jsp und *.txt Dateien

01.
rem ######################################################################################################################################## 
02.
:start 
03.
 
04.
	title NVP Design 
05.
	cls 
06.
	echo. 
07.
	echo. 
08.
	echo                  =============== NVP Design ================ 
09.
	echo                  *                                         * 
10.
	echo                  *  1 - DUNKEL                             * 
11.
	echo                  *  2 - HELL                               * 
12.
	echo                  *  3 - HINTERGRUND                        * 
13.
	echo                  *  4 - Companyname change                 * 
14.
	echo                  *  5 - About SQLMenu ^& Disclaimers        * 
15.
	echo                  *  x - Exit                               * 
16.
	echo                  *                                         * 
17.
	echo                  =========================================== 
18.
	echo                         Ctrl+C at any time will abort 
19.
	echo. 
20.
	echo. 
21.
	echo                     Select the type of SQL command to run 
22.
	echo. 
23.
	set /p sqltype=                            Your selection:  
24.
 
25.
	if '%sqltype%'=='1' goto DUNKEL 
26.
	if '%sqltype%'=='2' goto HELL 
27.
	if '%sqltype%'=='3' goto HINTERGRUND 
28.
	if '%sqltype%'=='4' goto COMPANY 
29.
	if '%sqltype%'=='5' goto ABOUT 
30.
	if '%sqltype%'=='x' exit 
31.
	if '%sqltype%'=='X' exit 
32.
 
33.
	 
34.
	rem (else) 
35.
	echo. 
36.
	echo                              ---INVALID ENTRY--- 
37.
	echo. 
38.
	pause 
39.
	goto start
Hier beginnt der erste Suchen teil der aber auf alle Dateien bzw. Dateitypen gehen soll.

01.
rem ######################################################################################################################################## 
02.
:DUNKEL  
03.
 
04.
set /p NewColor= Neue Farbe in HEX (ohne #): 
05.
 
06.
set "Datei1=%Datei1%" 
07.
set "t=Temp.tmp"   
08.
 
09.
set "Suchen1=00285C"  
10.
set "Ersetzen1=%NewColor%"  
11.
  
12.
if exist "%t%" del "%t%"  
13.
for /f "delims=" %%i in ('findstr /n $ "%Datei1%"') do set "Line=%%i" & call :ProcessLine  
14.
move "%t%" "%Datei1%"  
15.
goto :done  
16.
  
17.
:ProcessLine  
18.
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"  
19.
if not defined L >>"%t%" echo\& goto :eof  
20.
set WriteLine=!L:%Suchen1%=%Ersetzen1%! 
21.
>>"%t%" echo !WriteLine!  
22.
goto :eof   
23.
 
Hier ist nur noch das Ende verarbeitet.
01.
rem ######################################################################################################################################## 
02.
:done 
03.
 
04.
	echo. 
05.
	echo. 
06.
	echo. 
07.
	echo  ======================================================================  
08.
	echo. 
09.
	echo   Thank you for using SQLMenu.  The selected task has been completed.  
10.
	echo. 
11.
	echo              M - Main Menu (SQLMenu Begin Screen)  
12.
	echo              X - Exit.  
13.
	echo. 
14.
	echo  ======================================================================  
15.
	echo.  
16.
	echo. 
17.
	set /p getputagain=                              Your selection:  
18.
 
19.
	if '%getputagain%'=='m' goto start 
20.
	if '%getputagain%'=='M' goto start 
21.
	if '%getputagain%'=='x' exit 
22.
	if '%getputagain%'=='X' exit 
23.
 
24.
	rem (else) 
25.
	echo. 
26.
	echo                              ---INVALID ENTRY--- 
27.
	echo. 
28.
	pause 
29.
 
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
Mitglied: LotPings
13.04.2010 um 12:08 Uhr
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
Bitte warten ..
Mitglied: SBiesterfeldt
13.04.2010 um 12:11 Uhr
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
Bitte warten ..
Mitglied: LotPings
13.04.2010 um 15:25 Uhr
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
Bitte warten ..
Mitglied: SBiesterfeldt
13.04.2010 um 15:32 Uhr
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?
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Suchen ersetzen mit Sonderzeichen (2)

Frage von GNLen1 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...

Outlook & Mail
Outlook 2010 mit Exchange 2016 (15)

Frage von slansky zum Thema Outlook & Mail ...