Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 die 2.

Frage Entwicklung VB for Applications

Mitglied: Cadsys-Chemnitz

Cadsys-Chemnitz (Level 1) - Jetzt verbinden

20.05.2009, aktualisiert 09:23 Uhr, 6333 Aufrufe, 7 Kommentare

Wie Bastla in dem Thread unter dem Link:

https://www.administrator.de/index.php?content=73180#283532

beschrieben hat habe ich auch bei mir die Konvertierung umgesetzt.. Erstmal Danke auach von mir an Bastla.

Ich brauche dazu aber das ganze nicht nur für Dateien in diesem Ordner sondern auch für Dateien in Unterordnern und den Ordnernamen und Unterordnernamen selbst.

Hab schon bissl rumprobiert aber er springt nicht in unterordner, bzw wenn ich einen Ordner umbennen lassen konvertiert er mir die Dateien darin nicht mehr.

hier nochmal das Originalscript von Bastla.

01.
 
02.
'RenameSpecial.vbs 
03.
Const sProtokoll = "C:\skript" 
04.
Const sSonder = "C:\skript\SonderzeichenErsetzung.txt" 
05.
 
06.
If WScript.Arguments.Count = 0 Then 
07.
	WScript.Echo "Ordner mit umzubenennenden Dateien als Parameter uebergeben!" 
08.
	WScript.Quit(1) 
09.
End If 
10.
Set fso = CreateObject("Scripting.FileSystemObject") 
11.
sFolder = WScript.Arguments(0) 
12.
If Not fso.FolderExists(sFolder) Then 
13.
	WScript.Echo sFolder & " ist keine gueltige Ordnerangabe!" 
14.
	WScript.Quit(1) 
15.
End If 
16.
 
17.
If Not fso.FileExists(sSonder) Then 
18.
	WScript.Echo "Sonderzeichendaten " & sSonder & " nicht gefunden." 
19.
	WScript.Quit(1) 
20.
End If 
21.
Set oSonder = fso.OpenTextFile(sSonder, 1) 
22.
If Not oSonder.AtEndOfStream Then  
23.
	aSonder = Split(oSonder.ReadAll, vbCrLF) 
24.
Else 
25.
	oSonder.Close 
26.
	WScript.Echo "Sonderzeichendatei " & sSonder & " enthält keine Daten!" 
27.
	WScript.Quit(1) 
28.
End If 
29.
oSonder.Close 
30.
 
31.
If Right(LCase(WScript.FullName), 11) = "cscript.exe" Then 
32.
	bConsole = True 
33.
Else 
34.
	bConsole = False 
35.
End If 
36.
 
37.
Set oProtokoll = fso.OpenTextFile(sProtokoll & "\" & Replace(Replace(sFolder, ":", ""), "\", "_") & "-Doppelt.txt", 2, True) 
38.
 
39.
Set oFolder = fso.GetFolder(sFolder) 
40.
For Each oFile In oFolder.Files 
41.
	sNameOld = Left(oFile.Name, InStrRev(oFile.Name, ".") - 1) 
42.
	sType = Mid(oFile.Name, InStrRev(oFile.Name, ".")) 
43.
	 
44.
	If bConsole Then WScript.Echo "Bearbeite: " & oFile.Name 
45.
	 
46.
	sNameNew = ReplaceSpecialChars(sNameOld) 
47.
	If Not fso.FileExists(oFile.ParentFolder & "\" & sNameNew & sType) Then 
48.
		oFile.Name = sNameNew & sType 
49.
	Else 
50.
		If sNameOld <> sNameNew Then oProtokoll.WriteLine oFile.Name 
51.
	End If 
52.
Next 
53.
oProtokoll.Close 
54.
 
55.
Function ReplaceSpecialChars(sOld) 
56.
sTemp = sOld 
57.
For Each sLine In aSonder 
58.
	aChars = Split(sLine, ",") 
59.
	For i = 1 To UBound(aChars) 
60.
		sTemp = Replace(sTemp, aChars(i), aChars(0)) 
61.
	Next 
62.
Next 
63.
ReplaceSpecialChars = sTemp 
64.
End Function 
65.
 
Mitglied: bastla
20.05.2009 um 17:47 Uhr
Hallo Cadsys-Chemnitz!

Es steckt zwar sicher Optimierungspotenzial in dem Script , aber grundsätzlich sollte es so funktionieren:
01.
'RenameSpecialR.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.
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 = Left(oFile.Name, InStrRev(oFile.Name, ".") - 1) 
53.
    sType = Mid(oFile.Name, InStrRev(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 
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
Grüße
bastla
Bitte warten ..
Mitglied: Biber
20.05.2009 um 18:05 Uhr
Moin Cadsys-Chemnitz,
<OT>
....running gag #397
wenn ich einen Ordner umbennen lassen...
Menno, ich hab doch allen so oft angeboten, dass wir auch das viel einfachere Wort renamen oder meinetwegen umbenamsen verwenden dürfen...

WTF macht denn dieses Wort "Umbenennen" so schwierig?
Da ist kein "TZ", kein "PH" kein "Y" drin....

</OT>

Schönes Wochenende und drückt nachher mit mir Werder die Daumen.
Biber
Bitte warten ..
Mitglied: dog
21.05.2009 um 03:04 Uhr
Da ist kein "TZ", kein "PH" kein "Y" drin...

Wie in Phytzik?

Sorry, der musste sein...
Bitte warten ..
Mitglied: MonoTone
21.05.2009 um 23:25 Uhr
Zitat von Biber:

Schönes Wochenende und drückt nachher mit mir Werder die
Daumen.
Biber

Hat nix genutzt
Bitte warten ..
Mitglied: Cadsys-Chemnitz
22.05.2009 um 09:04 Uhr
Sorry das ich gestern nicht mehr Antworten konnte, lag wohl am Alkohol.^^

Also das funktioniert jetzt richtig prima, danke an Bastla.


An alle die betroffen sind heute nen schönen Brückentag.

S Y L

Tino
Bitte warten ..
Mitglied: nullnulleins
15.04.2010 um 04:49 Uhr
Soo.. hallo zusammen!

..jetzt habe ich mich extra angemeldet um diesen verstaubten thread mal wieder vorzukramen..
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.. ;)

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
Bitte warten ..
Mitglied: bastla
15.04.2010 um 10:47 Uhr
Hallo nullnulleins und willkommen im Forum!
Die Zeichen sind so wie sie in der shell angezeigt werden.
... und damit im ASCII-Format - VBScript verwendet allerdings ANSI.

Du solltest die Zeichen aus der Anzeige im Explorer holen (Dateinamen markieren, F2, Zeichen herauskopieren).

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

Batch & Shell
USB-Festplatte per Script sicher entfernen und wieder anhängen (8)

Frage von Atti58 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...