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

Frage Entwicklung Batch & Shell

Mitglied: lordofremixes

lordofremixes (Level 2) - Jetzt verbinden

20.08.2013, aktualisiert 15:22 Uhr, 2394 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 ..
Ä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
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 6 StundenBatch & Shell7 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 8 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 23 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...