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 Probleme beim Ordner und Dateien mit Umlauten umbenennen mit Skript

Mitglied: nullnulleins

nullnulleins (Level 1) - Jetzt verbinden

15.04.2010 um 04:56 Uhr, 10124 Aufrufe, 20 Kommentare

Soo.. hallo zusammen! face-smile

ich habe hier 10000de von Dateien, Ordner und Unterordner bei welchen nach Kopieraktionen über verschiedenen Filesystem und Betriebsysteme die Umlauten falsch angezeigt werden. Jetzt mag Windows XP die Dateien nicht mehr weiterkopieren.. ;)
ich beziehe mich auf folgenden Beitrag: https://www.administrator.de/index.php?content=116440#549866

Der Inhalt meiner "SonderzeichenErsetzung.txt" sieht jetzt wie folgt aus:
(jaa...ein grosses verkrüppeltes Ä suche ich noch.. )

ss,ß
Ae,ä
ae,ä
Oe,Ö
oe,├Â
Ue,Ü
ue,├╝
_, ,
_,(
_,)


Das Script läuft auch schön durch ersetzt aber nur Leerzeichen durch "_"

Habt ihr eine Erklärung dafür warum die anderen Zeichen nicht ersetzt werden?

Die Zeichen sind so wie sie in der shell angezeigt werden. kann vba damit evtl nicht umgehen??
Ich hatte hier auch eine .bat stapelverarbeitung von bastl gefunden. damit hat es geklappt.. aber halt ohne unterordner..usw... von daher gehe ich davon aus das ich schon die "richtigen" zeichen ersetze. ;) ..
unter windows werden nur kästchen angezeigt .
Was kann ich noch tun?

LG, die nullnummer
Mitglied: 76109
15.04.2010 um 10:17 Uhr
Hallo nullnulleins!

Zitat von nullnulleins:
unter windows werden nur kästchen angezeigt .
Dann schlage ich vor, dass Du die jeweiligen Kästchen kopierst und die Zeichen in der Ersetzen-Liste durch die kopierten Zeichen ersetzt. Die Kästchen symbolisieren ungültige Textzeichen, enthalten aber - in einem Hex-Editor sichtbar - unterschiedliche Zeichen-Codes.

Gruß Dieter
Bitte warten ..
Mitglied: nullnulleins
15.04.2010 um 20:15 Uhr
Zitat von 76109:
Hallo nullnulleins!

> Zitat von nullnulleins:
> unter windows werden nur kästchen angezeigt .
Dann schlage ich vor, dass Du die jeweiligen Kästchen kopierst und die Zeichen in der Ersetzen-Liste durch die kopierten
Zeichen ersetzt. Die Kästchen symbolisieren ungültige Textzeichen, enthalten aber - in einem Hex-Editor sichtbar -
unterschiedliche Zeichen-Codes.

Gruß Dieter

Hallo Dieter,
danke für die schnelle Antwort.. Leider funktioniert genau das nicht. Wenn ich die Kästchen kopiere erhalte ich genau die gleichen Zeichen die schon in meiner SonderzeichenErzetzung.txt Datei eingetragen sind...es sind auch die gleichen Zeichen die ich sehe wenn ich mir die Ordner über die kommandozeile (cmd) anschaue.
Das Problem hängt irgendwie mit diesen Linienzeichen "├╝" zusammen glaube ich..
Bitte warten ..
Mitglied: 76109
15.04.2010 um 20:52 Uhr
Hallo nullnulleins!

Dann wäre es sinnvoll, wenn Du die Ersetzenliste mit einem Win-Editor z.B. Notepad erstellst und dort die Zeichen kopierst, die in Windows angezeigt werden.

Gruß Dieter
Bitte warten ..
Mitglied: nullnulleins
15.04.2010 um 21:37 Uhr
Zitat von 76109:
Hallo nullnulleins!

Dann wäre es sinnvoll, wenn Du die Ersetzenliste mit einem Win-Editor z.B. Notepad erstellst und dort die Zeichen kopierst,
die in Windows angezeigt werden.

Gruß Dieter


wenn ich die kästchen über den arbeitsplatz kopiere und in notepad einfüge erhalte ich die Fehlermeldung dass es sich um Zeichen im Unicode-Format handelt und diese verloren gehen wenn ich die datei im ANSI Format abspeichere. Wenn ich im Unicode Format abspeichere funktioniert es natürlich auch nicht. Um die Zeichen in eine Textdatei zu packen habe ich bisher den MS-DOS Editor bemüht.

Da ich nicht weiss ob die Zeichen hier im Forum richtig angezeigt werden:
Es handelt sich um das "Liniengrafiksymbol" ├ (zu finden ganz unten bei: http://www.torsten-horn.de/techdocs/ascii.htm )
und ein Zeichen aus dem ASCII + DOS Erweiterung Zeichensatz ( das vierte von den Doppelliniensymbolen ) neben dem Copyrightzeichen (zu finden etwa in der mitte der seite : http://www.torsten-horn.de/techdocs/ascii.htm)
Bitte warten ..
Mitglied: 76109
15.04.2010 um 23:24 Uhr
Hallo nullnulleins!

Dann müsste man die Ersetzenliste in Unicode erstellen und im VB-Script per Unicode einlesen. Du kannst das ja schonmal Testen. Ich sehe es mir erst morgen an.

Die Codezeile aus dem Link, in der die Ersetzenliste geöffnet wird, für Unicode ändern von:
01.
Set oSonder = fso.OpenTextFile(sSonder, 1)
nach
01.
Set oSonder = fso.OpenTextFile(sSonder, 1, False, True)

Der letzte Parameter: True = Unicode und False = Ansi

Gruß Dieter
Bitte warten ..
Mitglied: nullnulleins
16.04.2010 um 02:46 Uhr
Juchuu! Das hat gefehlt! Jetzt ersetzt er die Zeichen!
Vielen Dank Dieter!

Allerdings bekomme ich jetzt bei manchen Verzeichnissen folgende Fehlermeldung:
O:\skript\RSR6.vbs(52, 5) Laufzeitfehler in Microsoft VBScript: Ungültiger Prozeduraufruf oder ungültiges Argument: 'Left'

Da hab ich auch keine Ahnung woran es liegen könnte.. Ich Vermute es liegt an defekten Dateien oder ..??


lg, Kurvenfreund
Bitte warten ..
Mitglied: 76109
16.04.2010 um 10:55 Uhr
Hallo nullnulleins!

Na, das ist doch schonmal eine gute und erfreuliche Nachricht

Verwendest Du von baslta das Script "RenameSpecialR.vbs"?

Zum ermitteln der Dateinamen und Dateierweiterung gibt es alternativ noch andere Funktionen z.B.
01.
    sNameOld = Left(oFile.Name, InStrRev(oFile.Name, ".") - 1)
02.
    sType = Mid(oFile.Name, InStrRev(oFile.Name, "."))
oder
01.
    sNameOld = fso.GetBaseName(oFile.Name)
02.
    sType = fso.GetExtensionName(oFile.Name)
Gegebenenfalls das ganze Script posten?

Gruß Dieter
Bitte warten ..
Mitglied: nullnulleins
16.04.2010 um 18:51 Uhr
jaa ... sooo funktioniert es... aber das skript killt jetzt leider den punkt vor der dateiendung...
da fehlte nur das -->, ".") - 1 .. oder?

ich probiers mal... leider zu spät ;) hab es schon halb verbockt
letzt brauch ich wohl ein tool was mit den punkt wieder reinbastelt..

01.
'RenameSpecialR.vbs
02.
Const sProtokoll = "o:\skript"
03.
Const sSonder = "o:\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,False, True)
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.
ProcessFolder(fso.GetFolder(sFolder))
38.
oProtokoll.Close
39.

40.
Sub ProcessFolder(oFolder)
41.
sNameOld = oFolder.Name
42.
If bConsole Then WScript.Echo "Bearbeite: " & oFolder.Path
43.

44.
sNameNew = ReplaceSpecialChars(sNameOld)
45.
If Not fso.FolderExists(oFolder.ParentFolder & "\" & sNameNew) Then
46.
    oFolder.Name = sNameNew
47.
Else
48.
    If sNameOld <> sNameNew Then oProtokoll.WriteLine oFolder.Path
49.
End If
50.

51.
For Each oFile In oFolder.Files
52.
    sNameOld = fso.GetBaseName(ofile.Name )
53.
    sType = fso.GetExtensionName(ofile.Name)
54.
    If bConsole Then WScript.Echo "Bearbeite: " & oFile.Path
55.
	
56.
    sNameNew = ReplaceSpecialChars(sNameOld)
57.
    If Not fso.FileExists(oFile.ParentFolder & "\" & sNameNew & "." & sType) Then
58.
        oFile.Name = sNameNew & "." & sType 'umbenennen auf NameNeu + . + Endung
59.
    Else
60.
        If sNameOld <> sNameNew Then oProtokoll.WriteLine oFile.Path
61.
    End If
62.
Next
63.

64.
For Each oSubFolder In oFolder.SubFolders
65.
    ProcessFolder(oSubFolder)
66.
Next
67.
End Sub
68.

69.
Function ReplaceSpecialChars(sOld)
70.
sTemp = sOld
71.
For Each sLine In aSonder
72.
    aChars = Split(sLine, ",")
73.
    For i = 1 To UBound(aChars)
74.
        sTemp = Replace(sTemp, aChars(i), aChars(0))
75.
    Next
76.
Next
77.
ReplaceSpecialChars = sTemp
78.
End Function
Bitte warten ..
Mitglied: bastla
16.04.2010 um 19:05 Uhr
Hallo nullnulleins!

Sollte genügen, die Zeile 58 anzupassen:
oFile.Name = sNameNew & "." & sType 'umbenennen auf NameNeu + . + Endung
[Edit]
Correction: Die Zeilen 52 und 53 sind eine Mischung aus Dieters Vorschlägen - bitte für eine Variante (vorzugsweise die zweite) entscheiden ...
[/Edit]

Grüße
bastla

P.S.: Wenn ich das richtig sehe, hätte damit auch der erste Kommentar in dieses Script Einzug gehalten ...
Bitte warten ..
Mitglied: nullnulleins
16.04.2010 um 19:12 Uhr
ahh.. hallo bastla!
ein tolles skript hast du da gebastlat..

deine antwort kam zu schnell.. ;)
habe den code oben nocheinmal eingefügt inkl. deinem änderungsvorschlag
Bitte warten ..
Mitglied: bastla
16.04.2010 um 19:16 Uhr
Hallo nullnulleins!

Leider musst Du auch in Zeile 57 noch Hand anlegen - dort fehlt (analog zur Zeile 58) auch der Punkt ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
16.04.2010 um 19:19 Uhr
[OT]
Zitat von bastla:
P.S.: Wenn ich das richtig sehe, hätte damit auch der erste Kommentar in dieses Script Einzug gehalten ...
Ja.... das wirkt noch ein wenig ungewohnt...

Schönes Wochenende!

Biber
[/OT]
Bitte warten ..
Mitglied: nullnulleins
16.04.2010 um 19:27 Uhr
Zitat von bastla:
P.S.: Wenn ich das richtig sehe, hätte damit auch der erste Kommentar in dieses Script Einzug gehalten ...

versteh ich nicht! bin ich zu doof!?.. was fürn kommentar?

>Leider musst Du auch in Zeile 57 noch Hand anlegen face-sad - dort fehlt (analog zur Zeile 58) auch der Punkt ...

hab ich gemacht.. siehe oben.. ich kann das erst später testen .. muss jetzt los
Bitte warten ..
Mitglied: Biber
16.04.2010 um 19:30 Uhr
[OT ii] @bastla
versteh ich nicht! bin ich zu doof!?.. was fürn kommentar?
Siehst du? Kommt keine/r mit klar, wenn du plötzlich Kommentare einbaust...

hihihi
Biber
[/OT ii]
Bitte warten ..
Mitglied: nullnulleins
16.04.2010 um 19:37 Uhr
Zitat von Biber:
[OT ii] @bastla
> versteh ich nicht! bin ich zu doof!?.. was fürn kommentar?
Siehst du? Kommt keine/r mit klar, wenn du plötzlich Kommentare einbaust...

hihihi
Biber
[/OT ii]


ahhh... genau.. jetzt hab ichs.. ;)
stimmt.. ist schwierig :D
also ich mag kommentare trotzdem.. die sind gut wenn man keine ahnung hat!
Bitte warten ..
Mitglied: kuddelmuddel
03.08.2012 um 12:55 Uhr
Hallo zusammen,

ich bin völlig neu hier im Board aber verfolge etliche Threads seid geraumer Zeit.

Nun zu meinem Problem.
Ich habe ebenfalls nach etlichen Kopieraktionen Unicode Sonderzeichen dabei die nicht ersetzt werden.
Hierbei handelt es sich um Umlaute die im Explorer richtig dargestellt werden aber im Cmd völlig anders.

Beispiel: ü im Explorer wird als u¨ dargestellt.

Ich denke ich hab mich recht genau an das hier beschrieben gehalten aber leider funktionieren die Ersetzungen nicht.

Was hab ich gemacht:
Per Cmd die Zeichen kopiert z.B. das u¨ und in die SonderzeichenErsetzung eingefügt. Anschliessend das ganze per Unicode gespeichert.

Durchlaufen lassen - Ergebniss, es wird nicht ersetzt.

Was mache ich falsch.

Bitte um Hilfe

Gruß

kuddelmuddel
Bitte warten ..
Mitglied: bastla
03.08.2012 um 16:55 Uhr
Hallo kuddelmuddel!
Per Cmd die Zeichen kopiert z.B. das u¨ und in die SonderzeichenErsetzung eingefügt. Anschliessend das ganze per Unicode gespeichert.
Versuch es direkt, indem Du die "SonderzeichenErsetzung.txt" mit dem Windows-Editor erzeugst (dazu die Sonderzeichen direkt im Explorer aus dem Dateinamen kopieren) - und lass das Script erst mal nur auf die Kopie eines Ordners los ...

Grüße
bastla
Bitte warten ..
Mitglied: kuddelmuddel
03.08.2012 um 17:36 Uhr
Hallo bastla,

das hab ich zwischenzeitlich auch herausgefunden Manchmal sieht man den Wald vor lauter Bäumen nicht.
Die Umlaute bekomme ich jetzt sauber ersetzt. Einfach SUPER das Skript.

Allerdings hab ich jetzt ein weiteres Problem...
es gibt teilweise in den Dateinamen Symbole die mir im Explorer wie ein *mal Zeichen dargestellt werden (allerdings nicht als Sternchen sondern als Punkt)
Wenn ich versuche die in der SonderzeichenErsetzung.txt anzulegen macht er mir daraus Windings Symbole z.B. ein Telefon.
Die will er mir aber nicht als Unicode ändern.

Was muss ich tun um auch diesen Müll aus den Dateien zu bekommen?

Danke vorab schon einmal für ein Feedback

Gruß

kuddelmuddel
Bitte warten ..
Mitglied: kuddelmuddel
03.08.2012 um 17:45 Uhr
Zitat von kuddelmuddel:
Hallo bastla,

das hab ich zwischenzeitlich auch herausgefunden Manchmal sieht man den Wald vor lauter Bäumen nicht.
Die Umlaute bekomme ich jetzt sauber ersetzt. Einfach SUPER das Skript.

Allerdings hab ich jetzt ein weiteres Problem...
es gibt teilweise in den Dateinamen Symbole die mir im Explorer wie ein *mal Zeichen dargestellt werden (allerdings nicht als
Sternchen sondern als Punkt)
Wenn ich versuche die in der SonderzeichenErsetzung.txt anzulegen macht er mir daraus Windings Symbole z.B. ein Telefon.
Die will er mir aber nicht als Unicode ändern.

Was muss ich tun um auch diesen Müll aus den Dateien zu bekommen?

Danke vorab schon einmal für ein Feedback

Gruß

kuddelmuddel

OK, auch das scheint sich erledigt zu haben. War ebenfalls ein Kopierfehler!
Aus dem Explorer in Notepad kopiert als Unicode gespeichert ....

was soll ich sagen es rennt wie die Luzie!

Gruß
kuddelmuddel
Bitte warten ..
Mitglied: bastla
03.08.2012 um 18:01 Uhr
Hallo kuddelmuddel!
es rennt wie die Luzie!
Daran kann ich nix Schlechtes finden ...

Deinen "Powershell"-Thread kannst Du ja noch ein wenig offen lassen - vielleicht gibt's dort eine weitere brauchbare Lösung.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Debian
Bash-Skript: Datei einlesen
gelöst Frage von Fenris14Debian3 Kommentare

Moin, also entweder bin ich zu dumm oder ich denke zu kompliziert. Ich versuche ein Skript zu schreiben das ...

VB for Applications
VB Skript Excel Datei
gelöst Frage von FragerVB for Applications3 Kommentare

Hallo Zusammen, Ich brauche eure Hilfe. Ich habe eine Datei 1.xlsx nun brauche ich ein Skript, was die Datei ...

XML
XML Datei per Skript ändern
gelöst Frage von chrisenXML12 Kommentare

Hallo zusammen, ich habe eine Frage zur automatischen Konvertierung einer XML Datei. Und zwar: Wir bekommen aus unserem Warenwirtschaftssystem ...

Batch & Shell
Problem mit Powershell Backup-Skript
gelöst Frage von ahussainBatch & Shell2 Kommentare

Hallo allerseits, ich habe mir ein kleines Backup-Skript geschrieben, welches beim Einstecken eines USB Sticks dessen Inhalte auf die ...

Neue Wissensbeiträge
Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 4 MinutenDebian

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 4 TagenWindows 72 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 6 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 7 TagenMicrosoft Office9 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Notebooks in Firmenwlan authentifizieren
gelöst Frage von EarthShakerLAN, WAN, Wireless17 Kommentare

Guten Tag, unsere Firma möchte gerne flächendeckend WLAN einführen und hat zu diesem Zweck einen Dienstleister beauftragt. Wir benötigen ...

Peripheriegeräte
PS2 Y-Kabel für Maus+Tastatur an PS2 Combo-Anschluss ASUS Prime X370-A
gelöst Frage von Windows10GegnerPeripheriegeräte13 Kommentare

Hallo, ich bin am Überlegen das o.g. Motherboard anzuschaffen. Da ich aber noch PS/2 für Maus+Tastatur benötige (bei optischen ...

Windows 10
Netzlaufwerk verschwindet (aber nur bestimmter Laufwerksbuchstabe)
gelöst Frage von survial555Windows 1010 Kommentare

Hallo, ich habe ein ganz seltsames Problem. Systemumgebung: Server 2012 R2 als DC und Windows 10 Pro als Clients ...

Netzwerkmanagement
Netzwerk vorübergehend weg
Frage von ahstaxNetzwerkmanagement10 Kommentare

Hallo, folgendes Szenario stellt sich dar: Im Netzwerk mit Win7-PCs wurden Switche ausgetauscht. Grundsätzlich funktioniert alles mindestens so gut ...