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
Kommentar vom Moderator Biber am 27.10.2009 um 21:31:51 Uhr
Verschoben von "Netzwerküberwachung und Protokolle" nach "Batch & Shell".
(da wird es vielleicht vom nächsten Suchenden besser gefunden)

Frage Entwicklung Batch & Shell

GELÖST

Sonderzeichen aus Datei- u. Ordnernamen entfernen bzw. ersetzen per bat o. vbs

Mitglied: HGGIGO

HGGIGO (Level 1) - Jetzt verbinden

27.10.2009, aktualisiert 18.10.2012, 9331 Aufrufe, 3 Kommentare

Schön guten Tag,

zur zeit Arbeiten wir auf unserem Eigenen Server, dieser wird aber von einem Fremdunternehmen, welches uns bald im Zielbetrieb übernimmt vereinnahmt und auf deren Server kopiert.

Jetzt das Problem: Auf dem neuen Server können nur Daten gespeichert werden die keine Sonderzeichen oder Leerzeichen enthalten. Alles was nicht bis zur Übernahme umbenannt ist verschwindet einfach...

Ich muss also die über 4 Mio. Dateien und Ordner umbenennen, bin aber nicht sehr begabt mit VBScript bzw. mit Batch! Es können auch keine Tool genutzt werden, da wir schon zum Teil übernommen sind ist mir dies nicht mehr Möglich... Müsste Quasi auch das Script per Hand abschreiben um es ins System zu bekommen.
Mitglied: TsukiSan
27.10.2009 um 16:50 Uhr
dir könnte dieses Replace-Script helfen
01.
on error resume next 
02.
 
03.
Dim FilterStr , PfadStr 
04.
Dim PfadStrNeu, DateiNameNeu 
05.
Dim Alt, Neu 
06.
Dim MyText() 
07.
Dim  X , ZX 
08.
Dim ZMAx 
09.
 
10.
FilterStr = "*.*" 
11.
X = 0 
12.
ZMax = 0 
13.
LogPath = "D:\Replace.txt" 
14.
FN = "" 
15.
FNR = "" 
16.
vbTextCompare = 1 
17.
 
18.
 
19.
Set objWord = CreateObject("Word.Application") 
20.
Set FSO = CreateObject("Scripting.FileSystemObject") 
21.
 
22.
Set MyLogFile = FSO.CreateTextFile(LogPath, TRUE) 
23.
MyLogFile.Close 
24.
 
25.
 
26.
 
27.
PfadStr = inputbox("Bitte den kompletten Pfad zu dem zu durchsuchenden Ordner eingeben.","Pfadangabe...","D:\1\") 
28.
PfadStrNeu = PfadStr & "ReplacedFiles\" 
29.
 
30.
FSO.CreateFolder(PfadStrNeu) 
31.
 
32.
Alt = inputbox("Bitte die zu ersetzende Zeichenkette eingeben...", "Alte Zeichenkette...", "ä")  
33.
Neu = inputbox("Bitte die neue Zeichenkette eingeben...", "Neue Zeichenkette...", "ae")  
34.
 
35.
msgbox "Befehl wird ausgeführt! Bitte warten!",,"Mit Word...." 
36.
 
37.
objWord.FileSearch.FileName = FilterStr 
38.
objWord.FileSearch.LookIn = PfadStr 
39.
objWord.FileSearch.SearchSubfolders = False 
40.
objWord.FileSearch.Execute 
41.
 
42.
 
43.
objWord.Visible = False 
44.
 
45.
Set MyLogFile = FSO.OpenTextFile(LogPath, 8) 
46.
MyLogFile.WriteLine (Time & "|Beginne Script: 'Replace_Strings_in_gesamten_Ordner.vbs'") 
47.
 
48.
For Each objFile in objWord.FileSearch.FoundFiles	 
49.
	 
50.
	MyLogFile.WriteLine (Time & "|  Oeffne Datei: " & ObjFile) 
51.
 
52.
'Jetzt holen wir uns nur den Dateinamen raus	 
53.
	FN = "" 
54.
	FNR = "" 
55.
	IFN = "" 
56.
	IFNR = "" 
57.
	for IFN = len(Objfile) to 0 Step -1 
58.
		FNTemp = mid (Objfile,IFN,1) 
59.
			If Not FNTemp = "\" then FN = FN & FNTemp 
60.
			If FNTemp = "\" Then IFN = 0 
61.
	next 
62.
 
63.
'Hier wieder richtig rum drehen ;-) 
64.
	for IFNR = len(FN) to 1 Step -1 
65.
		FNTempR = mid (FN,IFNR,1) 
66.
			FNR = FNR & FNTempR 
67.
	next 
68.
 
69.
	ZMAx = 0 
70.
	Set MyDatei = FSO.OpenTextFile(objFile, 1) 
71.
	Do Until MyDatei.AtEndOfStream  
72.
		TempText = MyDatei.ReadLine 
73.
		ZMAx = Zmax + 1  
74.
	Loop 
75.
	MyDatei.close	 
76.
	 
77.
	ReDim MyText(ZMax) 
78.
 
79.
	Set MyDatei = FSO.OpenTextFile(objFile, 1) 
80.
	Do Until MyDatei.AtEndOfStream  
81.
 
82.
		MyText(X) = MyDatei.ReadLine 
83.
	 
84.
		Tsuki = InStr(1,MyText(X), ALT, vbTextCompare) 
85.
	 
86.
		ZX = X 
87.
			If ZX < 10  then ZX = "0" & ZX 
88.
			If ZX < 100 then ZX = "0" & ZX 
89.
 
90.
		IF Tsuki > 0 Then 
91.
			MyLogFile.WriteLine (Time & "|     Zeile " & ZX & ": [" & ALT & "] ersetzt durch [" & Neu & "]") 
92.
		End If 
93.
		 
94.
		MyText(X) = Replace(MyText(X), Alt, Neu)  
95.
 
96.
		X = X + 1   
97.
 
98.
	Loop 
99.
	MyDatei.close 
100.
	 
101.
 
102.
	PfadNeu = PfadStrNeu & FNR  
103.
 
104.
	MyLogFile.WriteLine (Time & "|Schreibe Datei: " & PfadNeu) 
105.
 
106.
	Set MyDatei1 = FSO.CreateTextFile(PfadNeu, TRUE) 
107.
	MyDatei1.Close 
108.
	 
109.
	Set MyDatei1 = FSO.OpenTextFile(PfadNeu, 8) 
110.
	for I = 0 to (X - 1) 
111.
		MyDatei1.WriteLine (MyText(I)) 
112.
	next 
113.
	MyDatei1.Close 
114.
	 
115.
	X = 0 
116.
Next 
117.
 
118.
MyLogFile.WriteLine (Time & "| Beende Script: 'Replace_Strings_in_gesamten_Ordner.vbs'") 
119.
MyLogFile.Close 
120.
 
121.
WScript.Echo Time & "| Script beendet." 
122.
 
123.
objword.quit 
124.
 
125.
Set objword = nothing 
126.
Set MyDatei = nothing 
127.
Set FSO = nothing
Gruß
Tsuki
Bitte warten ..
Mitglied: Biber
27.10.2009, aktualisiert 18.10.2012
Moin HGGIGO,

willkommen im Forum.
. Müsste Quasi auch das Script per Hand abschreiben um es ins System zu bekommen.
Tja, rein vom Naturell her würde ich diesen Oneliner eigentlich direkt am CMD-Prompt eintippen...

Okay, du solltest vorher das CMD-Fenster mit "mode con cols=166 lines=44" ein bisschen anpassen.

Zum Umbenennen der Dateien würde dieser (als Batch formatierte) Oneliner reichen:
01.
:: ----snipp UmlautRen.bat --- 
02.
:: setlocal enableDelayedexpansion && REM falls bei euch nicht gesetzt 
03.
 
04.
@echo off & FOR %%a in ("ä=ae" "ö=oe" "ü=ue" "ß=ss" " =") do ( 
05.
    FOR /f "tokens=1,2 delims==" %%y in ("%%~a") do ( 
06.
        FOR /R d:\temp %%i in ("*%%y*") do @( 
07.
        Set "fileUml=%%~nxi"  
08.
        ECHO ren "%%i" "!fileUml:%%~a!" 
09.
    )))
Da der in der vorletzten virtuellen Zeile noch ein "ECHO ren" statt "ren" stehen hat, spielt der nur...

Demo:
(=19:01:34  D:\temp=) 
>e:\schnipsel\UmlautRen.bat 
ren "d:\temp\Bi-Bär 2009-123456.pdf" "Bi-Baer 2009-123456.pdf" 
ren "d:\temp\präfix.bla" "praefix.bla" 
ren "d:\temp\Backup1\Admincopy\SendTo\E-Mail-Empfänger.MAPIMail" "E-Mail-Empfaenger.MAPIMail" 
ren "d:\temp\Backup1\Admincopy\Startmenü\Programme\Zubehör\Programmkompatibilitäts-Assistent.lnk" "Programmkompatibilitaets-Assistent.lnk" 
ren "d:\temp\Backup1\tsprofil\SendTo\E-Mail-Empfänger.MAPIMail" "E-Mail-Empfaenger.MAPIMail" 
ren "d:\temp\Hein Blöd 2009-123456.pdf" "Hein Bloed 2009-123456.pdf" 
ren "d:\temp\testö mit Leerzeichen.xyz" "testoe mit Leerzeichen.xyz" 
ren "d:\temp\ÖÖÖö.txt" "oeoeoeoe.txt" 
ren "d:\temp\ÖÖÖÖÖ.txt" "oeoeoeoeoe.txt" 
ren "d:\temp\Backup1\Admincopy\SendTo\Desktop (Verknüpfung erstellen).DeskLink" "Desktop (Verknuepfung erstellen).DeskLink" 
ren "d:\temp\Backup1\Admincopy\Startmenü\Programme\Remoteunterstützung.lnk" "Remoteunterstuetzung.lnk" 
ren "d:\temp\Backup1\tsprofil\SendTo\Desktop (Verknüpfung erstellen).DeskLink" "Desktop (Verknuepfung erstellen).DeskLink" 
ren "d:\temp\testö mit Leerzeichen.xyz" "testömitLeerzeichen.xyz" 
....
Diese Skizze hat EINEN großen Vorteil gegenüber TsukiSans Ansatz:
  • es werden nur die betroffenen Dateien (mit den definierten Sonderzeichen) angefasst - und nicht alle Dateien. ist etwas schneller.

und einen halben Vorteil hat es zusätzlich: Wenn du erst einmal mit "Echo ren.." statt "Ren" laufen lässt, dann hat du gleich eine Doku.

Nachteile:
  • es wird (und kann nicht werden!) NICHT unterschieden zwischen Gross- und Kleinschreibung. Aus " Änderungsprotokoll" wird "aenderungsprotokoll" statt "Aenderungsprotokoll.
  • es lässt sich vieles auch wieder zurückdrehen (aus ue wieder ü machen etc). Allerdings wird beim Zurückdrehen aus "Michael" ein "Michäl", aus Oldesloe wird Oldeslö.
Und die Leerzeichen lassen sich gar nicht wieder sinnvoll einstreuen.

Für <b>Ordner<b>- statt Dateinamen müsste eine leicht modifizierte Kopie der ersten Anweisung machbar sein.

Grüße
Biber

P.S. Übrigens gibt es unter Ersetzen von Zeichen in Datei- und Verzeichnisnamen in allen Unterordnern eine auch sehr nette Lösung von pieh-ejdsch.

P.p.S. Falls jemand drüber stolpert, das [ren "d:\temp\testö mit Leerzeichen.xyz" "testömitLeerzeichen.xyz"] diese Zeile zweimal gefunden wird:
Es hat ja kein REName stattgefunden.... war ja nur Simulation mit ECHO...
Bitte warten ..
Mitglied: HGGIGO
27.10.2009 um 21:20 Uhr
WOW! Dankeschön


Hab Sie alle probiert und muss sagen die von gefällt mir am besten... (Sry das ich diesen nicht gefunden hab)
Die anderen haben in meinem Test Verzeichnis nicht so richtig funktioniert!

Ich Danke euch das war super...

Tschü
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Mit VB Script Sonderzeichen in Datei und Ordnernamen umbenennen
Frage von SirMcFrostyVB for Applications2 Kommentare

Folgendes Szenario: Einige Datei und/oder Ordnernamen besitzen Sonderzeichen(-kombinationen) die nun geändert/umbenannt werden müssen Beispiel: Aus ""Geschäftsüberlassung" soll wieder "Geschäftsüberlassung" ...

Batch & Shell
Suchen ersetzen mit Sonderzeichen
gelöst Frage von GNLen1Batch & Shell2 Kommentare

Hallo zusammen. Ich habe einen Suchen /Ersetzen Code aus diesem Forum genommen. In einer Datei wird nach bestimmten Begriffen ...

Batch & Shell
Suchen und Ersetzen mit Sonderzeichen
gelöst Frage von snowdreamBatch & Shell6 Kommentare

Hallo zusammen, ich brauche mal wieder eure Hilfe. Ich hab hier im Forum schon einiges gelernt und auch schon ...

Ubuntu
Ubuntu - Sonderzeichen aus Dateinamen entfernen
gelöst Frage von HenereUbuntu3 Kommentare

Servus zusammen, ich habe hier eine Fotosammlung auf nem Webserver mit root-Zugriff liegen. Ich würde gerne rekursiv die Dateien ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 4 StundenRouter & Routing1 Kommentar

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 11 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 15 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...