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

Script, das Textfiles untersucht und Textstellen automatisch ändert

Mitglied: lordofremixes

lordofremixes (Level 2) - Jetzt verbinden

24.03.2014, aktualisiert 09:12 Uhr, 1342 Aufrufe, 5 Kommentare

Hallo zusammen,

ich habe hier folgendes Script (auch aus dem administrator.de Forum ):

01.
@echo off & setlocal 
02.
set "Ordner=\\server1\profile\" 
03.
set "Typ=txt" 
04.
set "Von=www.Homepage_alt.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.Homepage_neu.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
In dem Script kann man oben den Texttyp angeben (txt, rtf, html, Zeile 3), den zu suchenden Text(Zeile 4), und den zu ersetzenden Text (Zeile 16).
Funktioniert wirklich gut, habe aber noch folgende Frage:

Die zu suchenden Dateien liegen alle in diesen Verzeichnissen:

\\server1\profile\test\Signaturen
\\server1\profile\test2\Signaturen
\\server1\profile\test3\Signaturen
\\server1\profile\test4\Signaturen
\\server1\profile\test5\Signaturen
\\server1\profile\test6\Signaturen

Das Script, das mir jetzt vorliegt, durchsucht aber dann auch Ordner wie z.B.

\\server\profile\test6\Word-Dokumente und ändert da dann natürlich auch die Textstellen..

Wie bekomme ich es hin, dass das Script nur die Ordner Signaturen durchsucht und ändert und alle Unterordner \\server\profile\.. auslässt (also wirklich nur Änderungen in den Ordnern Signaturen)?

Bitte um Hilfe!

Gruß
lordofremixes




Mitglied: TsukiSan
24.03.2014 um 10:02 Uhr
Hallo lordofremixes,

wenn du in der Kommandozeile einmal
01.
dir /?
eingibst, dann siehst du, welchen Buchstaben du oben in deiner Schleife rausnehmen musst, damit keine Unterverzeichnisse durchsucht werden.

Gruss
Tsuki
Bitte warten ..
Mitglied: bastla
24.03.2014 um 12:05 Uhr
Hallo lordofremixes!

Im einfachsten Fall könntest Du dem "dir" einen passenden Filter hinzufügen, etwa:
for /f "delims=" %%i in ('dir /s /b /a-d *.%Typ%^|findstr /i "Signaturen"') do call :ProcessFile "%%i"
Damit werden nur Dateipfade verwendet, die "Signaturen" enthalten - könnte allerdings auch im Namen der Datei sein.

Als exaktere Alternative dazu könntest Du geschachtelte "for /d"-Schleifen verwenden, um zunächst alle "\\server1\profile\test*"-Ordner zu erhalten und darin dann nur die "Signaturen"-Ordner verarbeiten ...

Grüße
bastla
Bitte warten ..
Mitglied: lordofremixes
24.03.2014 um 16:18 Uhr
Hallo bastla,

habe jetzt folgendes Script:

01.
@echo off & setlocal 
02.
set "Ordner=D:\TSProfile\Test\" 
03.
set "Typ=txt" 
04.
set "Von=www.AlteHomepage.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%^|findstr /i "Signatures"') do call :ProcessFile "%%i" 
11.
echo %Anzahl% Dateien bearbeitet 
12.
pause 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set "Nach=www.NeueHomepage.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 
24.
 
Er bringt mir jetzt aber die ganze Zeit Fehlermeldungen:

01.
Bearbeitet: "D:\TSProfile\Test\sf.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures\ 
02.
goethe.txt" 
03.
Bearbeitet: "D:\TSProfile\Test\sf.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures\ 
04.
sf.txt" 
05.
Bearbeitet: "D:\TSProfile\Test\sf.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures\ 
06.
sfprivat.txt" 
07.
C:\Users\ADMINI~1.BEP\AppData\Local\Temp\2\ReplaceIt.vbs(1, 76) Laufzeitfehler i 
08.
n Microsoft VBScript: Eingabe hinter Dateiende. 
09.
 
10.
Bearbeitet: "D:\TSProfile\Test\sfr.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
11.
\sfr.txt" 
12.
Bearbeitet: "D:\TSProfile\Test\sfr.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
13.
\sfr_m.txt" 
14.
C:\Users\ADMINI~1.BEP\AppData\Local\Temp\2\ReplaceIt.vbs(1, 76) Laufzeitfehler i 
15.
n Microsoft VBScript: Eingabe hinter Dateiende. 
16.
 
17.
Bearbeitet: "D:\TSProfile\Test\sgr.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
18.
\sgr.txt" 
19.
C:\Users\ADMINI~1.BEP\AppData\Local\Temp\2\ReplaceIt.vbs(1, 76) Laufzeitfehler i 
20.
n Microsoft VBScript: Eingabe hinter Dateiende. 
21.
 
22.
Bearbeitet: "D:\TSProfile\Test\sgr.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
23.
\sgr_Alpine.txt" 
24.
Bearbeitet: "D:\TSProfile\Test\si.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures\ 
25.
rr.txt" 
26.
Bearbeitet: "D:\TSProfile\Test\si.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures\ 
27.
si.txt" 
28.
Bearbeitet: "D:\TSProfile\Test\ski.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
29.
\ski.txt" 
30.
Bearbeitet: "D:\TSProfile\Test\ski.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
31.
\ski_m.txt" 
32.
C:\Users\ADMINI~1.BEP\AppData\Local\Temp\2\ReplaceIt.vbs(1, 76) Laufzeitfehler i 
33.
n Microsoft VBScript: Eingabe hinter Dateiende. 
34.
 
35.
Bearbeitet: "D:\TSProfile\Test\sro.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
36.
\sro.txt" 
37.
C:\Users\ADMINI~1.BEP\AppData\Local\Temp\2\ReplaceIt.vbs(1, 76) Laufzeitfehler i 
38.
n Microsoft VBScript: Eingabe hinter Dateiende. 
39.
 
40.
Bearbeitet: "D:\TSProfile\Test\ssc.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
41.
\ssc.txt" 
42.
Bearbeitet: "D:\TSProfile\Test\stae.TestDomaene.V2\AppData\Roaming\Microsoft\Signature 
43.
s\stae.txt" 
44.
Bearbeitet: "D:\TSProfile\Test\svh.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
45.
\svh.txt" 
46.
Bearbeitet: "D:\TSProfile\Test\swe.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
47.
\swe.txt" 
48.
Bearbeitet: "D:\TSProfile\Test\tba.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
49.
\tba.txt" 
50.
Bearbeitet: "D:\TSProfile\Test\tba.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
51.
\tba_m.txt" 
52.
Bearbeitet: "D:\TSProfile\Test\tbr.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
53.
\tbr.txt" 
54.
Bearbeitet: "D:\TSProfile\Test\tbr.TestDomaene.V2\AppData\Roaming\Microsoft\Signatures 
55.
\tbr_m.txt" 
56.
20 Dateien bearbeitet 
57.
Drücken Sie eine beliebige Taste . . .
Kannst du dir das erklären? Und wieso kommt eigentlich, wenn ich die Datei nocheinmal ausführe, wieder die Meldung, dass er 20 Dateien bearbeitet hat?

Hast du dafür eine Erklärung?

Gruß
lordofremixes
Bitte warten ..
Mitglied: lordofremixes
24.03.2014 um 16:24 Uhr
Und komischerweise passiert dies nur, wenn der Texttyp auf txt steht,
bei rtf oder htm meckert er nicht rum..
Bitte warten ..
Mitglied: bastla
24.03.2014, aktualisiert um 18:30 Uhr
Hallo lordofremixes!
Und komischerweise passiert dies nur, wenn der Texttyp auf txt steht,
Vermutlich gibt es nur Textdateien mit einer Größe von 0 Byte ...

Wird's besser, wenn Du Zeile 20 durch
if %~z1 neq 0 cscript //nologo %R% %1 "%Von%" "%Nach%"
ersetzt?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
VB Script ändert Dateinamen
gelöst Frage von mschaedler1982Batch & Shell5 Kommentare

Hallo zusammen. Kurze Erläuterung zu diesem Thema. Eine Maschine legt jeden Tag zu einer bestimmten Uhrzeit sehr sehr viele ...

Windows 10

Standarddrucker ändert sich bei Win10 automatisch

gelöst Frage von trallerWindows 106 Kommentare

Hallo, der Standarddrucker auf einem Windows 10 Pc ändert sich dauernd, obwohl "Standarddrucker von Windows verwalten lassen" deaktiviert wurde. ...

Batch & Shell

Per Batch Textstellen vertauschen

gelöst Frage von tefrackyBatch & Shell7 Kommentare

Hallo, es geht um folgenden Dateiausschnitt aus einer Test.xml: Leider hat der Server, auf den ich keinen Zugriff habe, ...

Windows Server

Host A Record ändert sich automatisch in Subdomain

gelöst Frage von garciamWindows Server14 Kommentare

Hallo zusammen, Ich habe ein komisches DNS Problem in einer Windows 2008R2 Umgebung. Auf dem DNS gibt es einen ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...