Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: lordofremixes

lordofremixes (Level 2) - Jetzt verbinden

20.08.2013, aktualisiert 15:22 Uhr, 2408 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
(https://www.administrator.de/forum/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 ..
Ähnliche Inhalte
Microsoft Office

Text in mehreren .docx suchen und ersetzen

gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Ich hoffe auf Antworten von Leuten, die genau das per Tool schon mal gemacht haben: Selektiere mehrere ...

Outlook & Mail

Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook)

gelöst Frage von LindeUnimogOutlook & Mail4 Kommentare

Hallo, Wir würden gerne nur bestimmte Email Anhänge speichern. Mit diesem Script unten klappt es zwar ganz gut aber ...

Batch & Shell

Anpassung Script in bat

gelöst Frage von zeroblue2005Batch & Shell5 Kommentare

Hallo Zusammen, wie kann ich diese Reg Datei, in eine Batch einfügen, so dass diese ohne Rückfragen ausgeführt wird? ...

Windows Userverwaltung

Sicherheitsrichtlinien und bestimmte Dateitypen

Frage von CaddyMWindows Userverwaltung3 Kommentare

Hallo zusammen, ich stehe hier gerade vor einem größeren Rätsel - ich bin als Anwendungsentwickler aber auch eher kein ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 14 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 14 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...