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

VBS Dateien als UTF-8 speichern

Frage Entwicklung VB for Applications

Mitglied: staga

staga (Level 1) - Jetzt verbinden

29.05.2012 um 16:51 Uhr, 3201 Aufrufe, 6 Kommentare

Hallo zusammen

Ich habe folgende Frage und hoffe das mir hier jemand weiterhelfen kann.

ich möchte gerne via Script in einem Ordner alle bestehende Files mit der Endung xml speichern als txt mit der Option Encoding UTF-8!!!.

Ich habe bereits mehrfach gegoogelt jedoch bin ich nicht fündig geworden daher hoffe ich das mir hier jemand weiterhelfen kann.

gruss
staga
Mitglied: bastla
29.05.2012 um 18:31 Uhr
Hallo staga!
Ich habe bereits mehrfach gegoogelt
Vielleicht hättest Du gleich hier suchen sollen : http://www.administrator.de/forum/VBScript-Zeichensatz-konvertieren-148 ...

Grüße
bastla
Bitte warten ..
Mitglied: staga
30.05.2012 um 08:19 Uhr
Hallo bastla

Vielen dank für die Antwort, funktioniert soweit tip top.

Vielleicht kannst du oder jemand anders mir noch sagen was ich tun muss bzw. wie der Parameter heist damit ich alle Dateien in einem Verzeichnis abarbeiten kann. Im Script (http://www.administrator.de/forum/VBScript-Zeichensatz-konvertieren-148 ...) wird ja eine einzelne Datei angegeben ich habe jedoch mehrere Dateien in einem Verzeichnis.

Sorry wenn ich so dumm frage aber ich bin ein blutiger Anfänger was scripting angeht.

gruss
staga
Bitte warten ..
Mitglied: bastla
30.05.2012, aktualisiert um 08:59 Uhr
Hallo staga!

Dazu brauchst Du eine Schleife drumherum - ungetestet etwa:
01.
Ordner = "D:\Dein Ordner" 
02.
Typ = "xml" 
03.
Zusatz = "_neu" 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
 
06.
For Each File In fso.GetFolder(Ordner).Files 'alle Dateien des Ordners durchgehen 
07.
    FileTyp = fso.GetExtensionName(File.Name) 'Dateityp ermitteln 
08.
    'Typ überprüfen (alles in Kleinbuchstaben umwandeln, da "XML" <> "xml") 
09.
    If LCase(FileTyp) = LCase(Typ) Then 
10.
        AnsiPath = File.Path 'Pfad ANSI-Datei 
11.
        Utf16Path = fso.GetParentFolderName(AnsiPath) & "\" & fso.GetBaseName(AnsiPath) & Zusatz & "." & FileTyp' Pfad UTF-Datei 
12.
        'ab hier wie im verlinkten Script 
13.
        '... 
14.
    End If 
15.
Next
Anmerkung: Natürlich wäre
fso.GetParentFolderName(AnsiPath)
nicht nötig, da Du den Ordner, in dem die Datei liegt, ohnehin schon kennst (steht in der Variablen "Ordner") - aber da Du ja etwas lernen willst ...

Grüße
bastla
Bitte warten ..
Mitglied: staga
30.05.2012, aktualisiert um 10:01 Uhr
Hallo
Danke erstmal. Also ich habe versucht das Script zusammen zu stellen. Irgendwie bringe ich es nicht zum laufen. Es erscheint immer ein fehler Linie 18 Char 9. Obschon jedesmal das erste File im Ordner erzeugt wird.

01.
Ordner = "C:\Temp\test\test1\ori" 
02.
AnsiPath = "C:\Temp\test\test1\ori" 
03.
Utf8Path = "C:\Temp\test\test1\ori" 
04.
Typ = "xml" 
05.
Zusatz = "_neu" 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 
08.
For Each File In fso.GetFolder(Ordner).Files 'alle Dateien des Ordners durchgehen 
09.
    FileTyp = fso.GetExtensionName(File.Name) 'Dateityp ermitteln 
10.
    'Typ überprüfen (alles in Kleinbuchstaben umwandeln, da "XML" <> "xml") 
11.
    If LCase(FileTyp) = LCase(Typ) Then 
12.
        AnsiPath = File.Path 'Pfad ANSI-Datei 
13.
        Utf8Path = fso.GetParentFolderName(AnsiPath) & "\" & fso.GetBaseName(AnsiPath) & Zusatz & "." & FileTyp' Pfad UTF-Datei 
14.
        'ab hier wie im verlinkten Script 
15.
        'Const AnsiPath = "C:\Temp\test\test1\ori" 
16.
        'Const Utf8Path = "C:\Temp\test\test1\ori" 
17.
 
18.
        Const adTypeBinary = 1 
19.
        Const adTypeText = 2 
20.
        Const adSaveCreateOverWrite = 2 
21.
  
22.
Dim BinaryStream, Text 
23.
     
24.
Set BinaryStream = CreateObject("ADODB.Stream") 
25.
         
26.
With BinaryStream 
27.
    .Type = adTypeText 
28.
    .Charset = "x-Ansi" 
29.
    .Open 
30.
    .LoadFromFile AnsiPath 
31.
     Text = .ReadText 
32.
    .Close 
33.
End With 
34.
         
35.
With BinaryStream 
36.
    .Type = adTypeText 
37.
    .Charset = "UTF-8" 
38.
    .Open 
39.
    .WriteText Text 
40.
    .SaveToFile Utf8Path, adSaveCreateOverWrite 
41.
    .Close 
42.
End With 
43.
        End If 
44.
        Next
Bitte warten ..
Mitglied: staga
30.05.2012 um 10:31 Uhr
Ok ich hab den Fehler gefunden. Ich habe die Zeilen 18-20 an den Anfang gesetzt - nun läufts.

Danke nochmals für die Hilfe

gruss
Staga
Bitte warten ..
Mitglied: bastla
30.05.2012 um 11:30 Uhr
Hallo staga!

Sorry, hatte nicht so genau darauf geachtet, dass Dieter (richtiger Weise) Konstante verwendet - diese dürfen natürlich im gesamten Script nur einmal erstellt werden.
Die Zeilen 2 und 3 sind überflüssig, da ja die Pfade in den Zeilen 12 und 13 jeweils neu ermittelt werden.
Noch ein Tipp: Gewöhne es Dir an, konsequent Einrückungen zu verwenden (zB auch für die Zeilen ab 22) - damit wird der Code wesentlich übersichtlicher ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

VB for Applications
gelöst Excel mit VBS bearbeiten und Speichern Unter (8)

Frage von Yannosch zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...