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

gelöst Mit VB Script Sonderzeichen entfernen.

Mitglied: Fraenky

Fraenky (Level 1) - Jetzt verbinden

09.11.2007, aktualisiert 10.11.2007, 14225 Aufrufe, 3 Kommentare

Mit VB Script Sonderzeichen aus Dateinamen entfernen.

Hallo zusammen.
Wie ja manche vielleicht wissen, hatte ich eine Fehleinschätzung bezüglich der Linkkonventionen. Daraus resultiert nun die Anforderung, in diesem Schritt alle Sonderzeichen aus Dateinamen zu konvertieren.
Den Einsatz des Scripts stelle ich mir so vor, das ich es in dem Ordner mit den umzubenennenden Dateien plaziere und das Script nach anklicken alle Dateien im Ordner nach folgendem Schema umbenennt:

Á,%C1,Á = A
á,%E1,á = a
À,%C0,À = A
à,%E0,à = a
Â,%C2, = A
â,%E2,â = a
Ä,%C4,Ä = Ae
ä,%E4,ä = ae
Ã,%C3,Ã = A
ã,%E3,ã = a
Ç,%C7,Ç = C
ç,%E7,ç = c
É,%C9,É = E
é,%E9,é = e
È,%C8,È = E
è,%E8,è = e
Ê,%CA,Ê = E
ê,%EA,ê = e
Í,%CD,Í = I (groß i)
í,%ED,í = i
Ì,%CC,Ì = I (groß i)
ì,%EC,ì = i
Õ,%D5,Õ = O
õ,%F5,õ = o
Ô,%D4,Ô = O
ô,%F4,ô = o
Ó,%D3,Ó =O
ó,%F3,ó = o
Ö,%D6,Ö = Oe
ö,%F6,ö = oe
Ú,%DA,Ú = U
ú,%FA,ú = u
Ü,%DC,Ü = Ue
ü,%FC,ü = ue

Die Endungen der Dateien sollen unverändert bleiben. Also aus Abença.php wird Abenca.php. Da ich die Gefahr der doppelten Dateinamen nach Umbenennen wegen der großen Anzahl der Dateien nicht abschätzen kann( hier im Beispiel würde z.B die Datei Abenca.php schon regulär existieren), sollte eine Prüfung auf Dopplung nach einer virtuellen Umbenennung erfolgen, bevor die Umbenennung real durchgeführt wird. Falls schon vorhanden, die Datei mit Sonderzeichen in eine Protokolldatei reinschreiben.
Da ich leider in VB noch sehr unerfahren bin, würde ich mich sehr freuen, hier wieder einmal gute Hilfe zu bekommen.
Und ich verspreche auch, mich nach Fertigstellung meines Projektes verstärkt in VB einzuarbeiten, so das ich dann nur noch um kleinere Korekturen nachfragen muß, also schon eine Grundstruktur vorlegen kann.
Darum bin ich um so erfreuter, festhalten zu können, das hier auf administrator.de viele Menschen (speziel bastla) anderen sehr fachkundig weiterhelfen.
MfG
Fraenky
Mitglied: bastla
09.11.2007 um 18:59 Uhr
Hallo Fraenky!

Etwas zum Testen:
01.
'RenameSpecial.vbs
02.
Const sProtokoll = "C:\skript"
03.
Const sSonder = "C:\skript\SonderzeichenErsetzung.txt"
04.

05.
If WScript.Arguments.Count = 0 Then
06.
	WScript.Echo "Ordner mit umzubenennenden Dateien als Parameter uebergeben!"
07.
	WScript.Quit(1)
08.
End If
09.
Set fso = CreateObject("Scripting.FileSystemObject")
10.
sFolder = WScript.Arguments(0)
11.
If Not fso.FolderExists(sFolder) Then
12.
	WScript.Echo sFolder & " ist keine gueltige Ordnerangabe!"
13.
	WScript.Quit(1)
14.
End If
15.

16.
If Not fso.FileExists(sSonder) Then
17.
	WScript.Echo "Sonderzeichendaten " & sSonder & " nicht gefunden."
18.
	WScript.Quit(1)
19.
End If
20.
Set oSonder = fso.OpenTextFile(sSonder, 1)
21.
If Not oSonder.AtEndOfStream Then 
22.
	aSonder = Split(oSonder.ReadAll, vbCrLF)
23.
Else
24.
	oSonder.Close
25.
	WScript.Echo "Sonderzeichendatei " & sSonder & " enthält keine Daten!"
26.
	WScript.Quit(1)
27.
End If
28.
oSonder.Close
29.

30.
If Right(LCase(WScript.FullName), 11) = "cscript.exe" Then
31.
	bConsole = True
32.
Else
33.
	bConsole = False
34.
End If
35.

36.
Set oProtokoll = fso.OpenTextFile(sProtokoll & "\" & Replace(Replace(sFolder, ":", ""), "\", "_") & "-Doppelt.txt", 2, True)
37.

38.
Set oFolder = fso.GetFolder(sFolder)
39.
For Each oFile In oFolder.Files
40.
	sNameOld = Left(oFile.Name, InStrRev(oFile.Name, ".") - 1)
41.
	sType = Mid(oFile.Name, InStrRev(oFile.Name, "."))
42.
	
43.
	If bConsole Then WScript.Echo "Bearbeite: " & oFile.Name
44.
	
45.
	sNameNew = ReplaceSpecialChars(sNameOld)
46.
	If Not fso.FileExists(oFile.ParentFolder & "\" & sNameNew & sType) Then
47.
		oFile.Name = sNameNew & sType
48.
	Else
49.
		If sNameOld <> sNameNew Then oProtokoll.WriteLine oFile.Name
50.
	End If
51.
Next
52.
oProtokoll.Close
53.

54.
Function ReplaceSpecialChars(sOld)
55.
sTemp = sOld
56.
For Each sLine In aSonder
57.
	aChars = Split(sLine, ",")
58.
	For i = 1 To UBound(aChars)
59.
		sTemp = Replace(sTemp, aChars(i), aChars(0))
60.
	Next
61.
Next
62.
ReplaceSpecialChars = sTemp
63.
End Function
Benötigt wird dazu die Datei "SonderzeichenErsetzung.txt" (siehe Zeile "Const sSonder = ...") mit folgendem Inhalt:
01.
A,Á,%C1,&Aacute;,À,%C0,&Agrave;,Â,%C2,&Acirc;,Ã,%C3,&Atilde;
02.
a,á,%E1,&aacute;,à,%E0,&agrave;,â,%E2,&acirc;,ã,%E3,&atilde;
03.
Ae,Ä,%C4,&Auml;
04.
ae,ä,%E4,&auml;
05.
C,Ç,%C7,&Ccedil;
06.
c,ç,%E7,&ccedil;
07.
E,É,%C9,&Eacute;,È,%C8,&Egrave;,Ê,%CA,&Ecirc;
08.
e,é,%E9,&eacute;,è,%E8,&egrave;,ê,%EA,&ecirc;
09.
I,Í,%CD,&Iacute;,Ì,%CC,&Igrave;
10.
i,í,%ED,&iacute;,ì,%EC,&igrave;
11.
O,Õ,%D5,&Otilde;,Ô,%D4,&Ocirc;Ó,%D3,&Oacute;
12.
o,õ,%F5,&otilde;,ô,%F4,&ocirc;ó,%F3,&oacute;
13.
Oe,Ö,%D6,&Ouml;
14.
oe,ö,%F6,&ouml;
15.
U,Ú,%DA,&Uacute;
16.
u,ú,%FA,&uacute;
17.
Ue,Ü,%DC,&Uuml;
18.
ue,ü,%FC,&uuml;
Am Beginn jeder Zeile steht der Ersatztext, dahinter (durch Kommata getrennt) die zu ersetzenden Zeichen(-folgen).

Das Script erwartet die Übergabe des zu bearbeitenden Ordners und erstellt für jene Dateien, welche (wegen daraus resultierender Namensgleichheit mit bereits vorhandenen Dateien) nicht umbenannt werden können, im in der ersten "Const"-Zeile festgelegten Ordner eine Protokolldatei (Benennung mit dem Pfad des Ordners, wobei ":" entfernt und "\" durch "_" ersetzt wird - also würde für den Ordner "D:\Daten\Test" die Protokolldatei "D_Daten_Test-Doppelt.txt" heißen).

Wenn Du das Script von der Kommandozeile ausführst (zB mit
01.
cscript //nologo C:\skript\RenameSpecial.vbs "D:\Daten\Test"
wird im CMD-Fenster die jeweils bearbeitete Datei angezeigt (weswegen ich diese Startart empfehlen würde), startetst Du per Drag&Drop (des Ordners auf die Scriptdatei) kann diese Anzeige nicht (sinnvoll) erfolgen.

Grüße
bastla
Bitte warten ..
Mitglied: Fraenky
09.11.2007 um 22:01 Uhr
Waou bastla.
Ein Script, ein Volltreffer. In atemberaubender Schnelligkeit wird alles zu 100% erledigt. Ich habe den Ordner auf das Script gezogen und es lief wie am Schnürchen. Auch die Dopplungen ( ca. 20) wurden korrekt angezeigt.
1A suuuper bastla.
Danke
Fraenky

PS.
Verstehe ich des Script richtig, das Du das, was ich virtuelles Umbenennen genannt habe, in diesen Zeilen mit dieser If Not Anweisung realisiert hast?
01.
If Not fso.FileExists(oFile.ParentFolder & "\" & sNameNew & sType) Then oFile.Name = sNameNew & sType
Bitte warten ..
Mitglied: bastla
10.11.2007 um 09:49 Uhr
Hallo Fraenky!

In atemberaubender Schnelligkeit ...
... spricht für Deine Hardware.

... virtuelles Umbenennen ... in diesen Zeilen mit dieser If Not Anweisung realisiert ...
If Not fso.FileExists(oFile.ParentFolder & "\" & sNameNew & sType) Then
oFile.Name = sNameNew & sType
Ja; es wird einfach das Vorhandensein einer Datei mit dem neuen Namen und dem alten Typ überprüft und entsprechend dem Ergebnis der Überprüfung umbenannt oder protokolliert.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VB-Script per Aufgabenplanung
gelöst Frage von S4kar97VB for Applications2 Kommentare

Hallo, Ich habe mir ein VB-Script erstellt, welches im Grunde ein Programm startet und diesem Parameter übergibt und die ...

Entwicklung
VB Script Drucker hinzufügen
Frage von Marcel1989Entwicklung3 Kommentare

Funktionsweise sollte definitiv sein das mit einem Script sich 2 verschiedene Betriebssysteme ein und denselben Drucker holen. Mein Script ...

Windows Server
Drucker entfernen in VB-Script
gelöst Frage von NilsvLehnWindows Server2 Kommentare

Hallo ich habe eine kleine Frage bzgl. unseres Anmeldeskriptes. Ich habe ein IT-netzwerk an einer Uni übernommen. Ich arbeite ...

VB for Applications

Per VB Script eine Webverknüpfung erstellen

gelöst Frage von wilyfoxVB for Applications2 Kommentare

Hallo, ich möchte per Script eine Verknüpfung auf dem Desktop erstellen. Die Verknüpfung wird auch erstellt nur das gewünschte ...

Neue Wissensbeiträge
Windows 10

Windows 10 - Programme laufen schneller, wenn Sie mit Administratorrechten ausgeführt werden

Erfahrungsbericht von 1Werner1 vor 22 StundenWindows 1010 Kommentare

Moin, das wollte ich erst nicht glauben, aber es ist so. Wenn Ihr ein Programm mit Administratorrechten unter Windows ...

Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 2 TagenSicherheits-Tools5 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Off Topic
Sachen die die Welt nicht braucht - Platz 1
Tipp von brammer vor 4 TagenOff Topic21 Kommentare

Hallo, ich habs als Tipp angelegt als Erfahrungsbericht nein Danke brammer

Humor (lol)
Spirit of Health-Kongress in Berlin
Information von AnkhMorpork vor 5 TagenHumor (lol)6 Kommentare

tgif! Beim dritten Spirit of Health-Kongress trafen sich am Wochenende Alternativmediziner und Naturheilkundler im Maritim Hotel Berlin, um sich ...

Heiß diskutierte Inhalte
Hardware
Telefonanlagen - Welche gibt es
Frage von Xaero1982Hardware25 Kommentare

Nabend Zusammen, ich suche eine neue TK Anlage und mein Auftraggeber will jetzt was völlig neues - State of ...

Windows Server
Eingeschränkte Gruppen - Spezielle Benutzergruppe hinzufügen
Frage von killtecWindows Server17 Kommentare

Hallo, ich möchte gerne folgendes Realisieren: Ich habe bei mir Eingeschränkte Gruppen via GPO aktiv und möchte nun der ...

Microsoft Office
Videodateien auf Windows Server 2008 R2 öffnen schlägt fehl
Frage von SchroediMicrosoft Office16 Kommentare

Hallo zusammen, wir haben das Problem das embedded Videos in PowerPoint (O365) auf unserer Citrix Farm (6.5) nicht abgespielt ...

LAN, WAN, Wireless
Intel(R) PRO Wireless 3945ABG
gelöst Frage von Leon509LAN, WAN, Wireless15 Kommentare

Hallo, habe ein Laptop Fujitsu (Intel, 4GB, 2GHz, Windos10, Intel(R) PRO/Wireless 3945ABG ) ein O2 DSL Anschluss Home50. Leider ...