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

Anpassung Script Text in bestimmten Dateitypen suchen, ersetzen und speichern

Frage Entwicklung Batch & Shell

Mitglied: lordofremixes

lordofremixes (Level 1) - Jetzt verbinden

20.08.2013, aktualisiert 15:22 Uhr, 2314 Aufrufe, 4 Kommentare

Hallo zusammen,

vor langer Zeit wurde von bastla ein Script erstellt, welches bei bestimmten Dateitypen (kann man frei einstellen) nach Text sucht, diesen ersetzt und die Daten dann abspeichert. Der Quellcode von damals war folgender:

01.
@echo off & setlocal 
02.
set "Ordner=D:\Vertretungen" 
03.
set "Typ=html" 
04.
set "Von=x.css" 
05.
 
06.
set R=%temp%\ReplaceIt.vbs 
07.
>%R% echo Set a=WScript.Arguments:Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
08.
 
09.
pushd "%Ordner%" 
10.
for /f "delims=" %%i in ('dir /b /a-d *.%Typ%') do call :ProcessFile "%%i" 
11.
popd 
12.
pause 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set "Nach=" 
17.
findstr /i c:"Vertretungsplan für Mo" %1>nul && set "Nach=Mo.css" 
18.
findstr /i c:"Vertretungsplan für Di" %1>nul && set "Nach=Di.css" 
19.
findstr /i c:"Vertretungsplan für Mi" %1>nul && set "Nach=Mi.css" 
20.
findstr /i c:"Vertretungsplan für Do" %1>nul && set "Nach=Do.css" 
21.
findstr /i c:"Vertretungsplan für Fr" %1>nul && set "Nach=Fr.css" 
22.
if not defined Nach echo Nicht bearbeitet: %1 & goto :eof 
23.
 
24.
cscript //nologo %R% %1 "%Von%" "%Nach%" 
25.
echo Bearbeitet: %1 
26.
goto :eof
(http://www.administrator.de/frage/text-deien-%C3%B6ffnen-ein-wort-suche ...)

Ich habe das Script für meine Bedürfnisse angepasst und es funktioniert auch sehr gut!
Meine Fragen sind nun:
1. Kann ich die absolute Angabe des Pfads verändern, so dass er komplette Verzeichnisse auf dem Server inkl. aller Unterordner macht (z.B. in \\S01\Produktiv inkl. aller Unterordner) ?
2. Kann man das Script so erweitern, dass nach Ausführung des Script eine Meldung erscheint, wie viele Dateien bearbeitet wurden und ob es eventuell Fehler gab?

Danke schonmal vielmals.

Gruß
lordofremixes

Mitglied: bastla
20.08.2013, aktualisiert um 13:40 Uhr
Hallo lordofremixes!

Ungetestet etwa so:
01.
@echo off & setlocal 
02.
set "Ordner=\\S01\Produktiv" 
03.
set "Typ=html" 
04.
set "Von=x.css" 
05.
 
06.
set /a Anzahl=0 
07.
set R=%temp%\ReplaceIt.vbs 
08.
>%R% echo Set a=WScript.Arguments:Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
09.
 
10.
for /f "delims=" %%i in ('dir /s /b /a-d *.%Typ%') do call :ProcessFile "%%i" 
11.
echo %Anzahl% Dateien bearbeitet 
12.
pause 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set "Nach=" 
17.
findstr /i c:"Vertretungsplan für Mo" %1>nul && set "Nach=Mo.css" 
18.
findstr /i c:"Vertretungsplan für Di" %1>nul && set "Nach=Di.css" 
19.
findstr /i c:"Vertretungsplan für Mi" %1>nul && set "Nach=Mi.css" 
20.
findstr /i c:"Vertretungsplan für Do" %1>nul && set "Nach=Do.css" 
21.
findstr /i c:"Vertretungsplan für Fr" %1>nul && set "Nach=Fr.css" 
22.
if not defined Nach echo Nicht bearbeitet: %1 & goto :eof 
23.
 
24.
cscript //nologo %R% %1 "%Von%" "%Nach%" 
25.
echo Bearbeitet: %1 
26.
set /a Anzahl+=1 
27.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: lordofremixes
20.08.2013 um 14:06 Uhr
Hallo bastla,

habe es gerade ausprobiert. Es kommt dabei folgende Fehlermeldung:

"\\s73\TSProfile\Test"
CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.

UNC-Pfade werden nicht unterstützt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
Bearbeitet: "C:\Windows\globhist.htm"
Bearbeitet: "C:\Windows\hotlist.htm"
C:\Users\ssc\AppData\Local\Temp\ReplaceIt.vbs(1, 109) Laufzeitfehler in Microsof
t VBScript: Erlaubnis verweigert.

Bearbeitet: "C:\Windows\ehome\CreateDisc\SonicResources\ClickMe.htm"
C:\Users\ssc\AppData\Local\Temp\ReplaceIt.vbs(1, 76) Laufzeitfehler in Microsoft
VBScript: Eingabe hinter Dateiende.

Batchvorgang abbrechen (J/N)?

Gruß
lordofremixes
Bitte warten ..
Mitglied: lordofremixes
20.08.2013 um 14:33 Uhr
Hallo,

Hallo,

sorry mein Fehler. Habe es direkt mit der Freigabe ausprobiert
Bitte warten ..
Mitglied: lordofremixes
20.08.2013, aktualisiert um 15:27 Uhr
Hallo bastla,

habe noch eins feststellen können:

Das Script funktioniert zwar so wie es sollte, eines scheint aber nicht zu funktionieren:
Als Ordner habe ich angegeben:

Angegeben ist der Ordner:
01.
@echo off & setlocal 
02.
set "Ordner=\\s73\TSProfile\ssc.V2" 
03.
set "Typ=htm" 
04.
set "Von=www.alteSeite.com" 
05.
 
06.
set /a Anzahl=0 
07.
set R=%temp%\ReplaceIt.vbs 
08.
>%R% echo Set a=WScript.Arguments:Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2)) 
09.
 
10.
for /f "delims=" %%i in ('dir /s /b /a-d *.%Typ%') do call :ProcessFile "%%i" 
11.
echo %Anzahl% Dateien bearbeitet 
12.
pause 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set "Nach=www.neueSeite.com" 
17.
 
18.
if not defined Nach echo Nicht bearbeitet: %1 & goto :eof 
19.
 
20.
cscript //nologo %R% %1 "%Von%" "%Nach%" 
21.
echo Bearbeitet: %1 
22.
set /a Anzahl+=1 
23.
goto :eof
Er bearbeitet aber das Script je nachdem in welchem Verzeichnis ich das Script ausführe:


Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
ab.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
ae.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
ae_m.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
ae_w.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
ak.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
ap.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
chc.htm"
Bearbeitet: "F:\TSProfile\Test\ae.V2\AppData\Roaming\Microsoft\Signatures\
mb.htm"
Bearbeitet: "F:\TSProfile\Test\cag..V2\AppData\Roaming\Microsoft\Signatures
\cag.htm"
Bearbeitet: "F:\TSProfile\Test\dke.V2\AppData\Roaming\Microsoft\Signatures
\dke.htm"
Bearbeitet: "F:\TSProfile\Test\dke.V2\AppData\Roaming\Microsoft\Signatures
\dke_m.htm"
Bearbeitet: "F:\TSProfile\Test\dke.V2\AppData\Roaming\Microsoft\Signatures
\dke_w.htm"
Bearbeitet: "F:\TSProfile\Test\ewa.V2\AppData\Roaming\Microsoft\Signatures
\et.htm"
Bearbeitet: "F:\TSProfile\Test\ewa.V2\AppData\Roaming\Microsoft\Signatures
\ewa.htm"
14 Dateien bearbeitet
Drücken Sie eine beliebige Taste . . .

Habe ich eventuell was falsch gemacht?

Gruß
lordofremixes
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(7)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
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 ...

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

Frage von Haures zum Thema Windows Server ...

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

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...