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 mit Umlauten bei Übergabe an VBS (Exiftool charset)

Mitglied: Django.Durano

Django.Durano (Level 1) - Jetzt verbinden

15.08.2018, aktualisiert 18.08.2018, 9350 Aufrufe, 7 Kommentare

Hallo, ich habe folgendes Problem.

Ich möchte mit einer Batchdatei eine MP4-Videodatei mittels Exif auslesen und die ausgelesenen Tags dann in eine XML-Datei schreiben.

Das auslesen funktioniert auch mit der Batch ohne weiteres ich kann auch die Parameter an das Vbscript übergeben, das mir dann eine XMl-Datei erstellt.
Mein Problem sind nun die Umlaute. Wenn ich die ausgelesenen Tags in eine TXT-Datei umleite bekomme ich keine Probleme, dann werden mir die Umlaute sauber in der TXT-Datei angezeigt.
Wenn ich aber die Tags in den Variablen anzeigen lasse bzw. diese an das Vbsscript übergebe kommt nur noch mist dabei raus.
Habe schon ein bisschen nachgelesen, aber entweder stehe ich aufm Schlauch oder ich mache was falsch.

Ich habe schon versucht die Codepage zu ändern auf 1252 leider ohne Erfolg.
Die Kodierung meiner Batch habe ich auf OEM850 geändert dann bekomme ich zumindest ein echo äää auch als dieses angezeigt aber nicht die Tags.
Ein ändern der Sprache auf MS-Dos hat auch nichts gebracht.

Schätze ich werde irgendwo noch einen Fehler haben oder etwas falsch verstanden haben.

Vielleicht kann mir hier ja jemand weiter helfen.

Ein kompletter umstieg auf VBS kommt für mich leider nicht in Frage da ich mich nur sehr dürftig damit auskenne.

Hier der Batchcode.


01.
@echo off 
02.

03.
set "cntr1=0"
04.
set "cntr2=0"
05.
set "cntr3=0"
06.
set staffel_txt=One Piece - Mux Tool - Staffelliste.txt
07.

08.
set "test=T:\KUC NG OP Mux Tool\One Piece - Mux Tool V1 1 [KUC NG]\One Piece - Mux Tool - Staffelliste.txt"
09.

10.

11.

12.
:TagsAuslesen
13.

14.
setlocal enabledelayedexpansion
15.

16.
set "pfad=%1"
17.
set "pfad1=%~dp1"
18.
set /a "cntr1+=1"
19.
set /a "cntr3+=1"
20.
set /a "cntr4=%cntr3%+1"
21.
set /a "cntr5=%cntr3%+2"
22.
set "ChapterUID=%cntr3%%cntr4%%cntr5%"
23.

24.

25.
for /f "tokens=2,3,4 delims=:" %%o in ('T:\exiftool\exiftool.exe -Title -TrackNumber -DiskNumber -TVNetworkname -TVSeason -TVEpisode -Description -LongDescription -ContentCreateDate -Genre %Pfad%') do (
26.
		set /a cntr2=!cntr2! + 1
27.
		set tag!cntr2!=%%o %%p %%q
28.
)
29.

30.
for /f "tokens=1,2,3,4 delims=^&" %%a in ("%tag10%") do set "Genre1=%%a" & set "Genre2=%%b" & set "Genre3=%%c" & set "Genre4=%%d"
31.

32.
set "Title=%tag1%"
33.
set "TrackNumber=%tag2:~0,-7%"
34.
set "DiskNumber=%tag3:~0,-7%"
35.
set "TVNetworkname=%tag4%"
36.
set "TVSeason=%tag5%"
37.
set "TVEpisode=%tag6%"
38.
set "Description=%tag7%"
39.
set "LongDescription=%tag8%"
40.
set "ContentCreateDate=%tag9%"
41.

42.

43.

44.
:LeerzeichenEntfernen
45.
:loop1
46.
if "%Title:~0,1%"==" " set "Title=%Title:~1%" & goto :loop1
47.
if "%TrackNumber:~0,1%"==" " set "TrackNumber=%TrackNumber:~1%" & goto :loop1
48.
if "%DiskNumber:~0,1%"==" " set "DiskNumber=%DiskNumber:~1%" & goto :loop1
49.
if "%TVNetworkname:~0,1%"==" " set "TVNetworkname=%TVNetworkname:~1%" & goto :loop1
50.
if "%TVSeason:~0,1%"==" " set "TVSeason=%TVSeason:~1%" & goto :loop1
51.
if "%TVEpisode:~0,1%"==" " set "TVEpisode=%TVEpisode:~1%" & goto :loop1
52.
if "%Description:~0,1%"==" " set "Description=%Description:~1%" & goto :loop1
53.
if "%LongDescription:~0,1%"==" " set "LongDescription=%LongDescription:~1%" & goto :loop1
54.
if "%ContentCreateDate:~0,1%"==" " set "ContentCreateDate=%ContentCreateDate:~1%" & goto :loop1
55.
if "%Genre1:~0,1%"==" " set "Genre1=%Genre1:~1%" & goto :loop1
56.
if "%Genre2:~0,1%"==" " set "Genre2=%Genre2:~1%" & goto :loop1
57.
if "%Genre3:~0,1%"==" " set "Genre3=%Genre3:~1%" & goto :loop1
58.
if "%Genre4:~0,1%"==" " set "Genre4=%Genre4:~1%" & goto :loop1
59.
:loop2
60.
if "%Title:~-1%"==" " set "Title=%Title:~0,-1%" & goto :loop2
61.
if "%TrackNumber:~-1%"==" " set "TrackNumber=%TrackNumber:~0,-1%" & goto :loop2
62.
if "%DiskNumber:~-1%"==" " set "DiskNumber=%DiskNumber:~0,-1%" & goto :loop2
63.
if "%TVNetworkname:~-1%"==" " set "TVNetworkname=%TVNetworkname:~0,-1%" & goto :loop2
64.
if "%TVSeason:~-1%"==" " set "TVSeason=%TVSeason:~0,-1%" & goto :loop2
65.
if "%TVEpisode:~-1%"==" " set "TVEpisode=%TVEpisode:~0,-1%" & goto :loop2
66.
if "%Description:~-1%"==" " set "Description=%Description:~0,-1%" & goto :loop2
67.
if "%LongDescription:~-1%"==" " set "LongDescription=%LongDescription:~0,-1%" & goto :loop2
68.
if "%ContentCreateDate:~-1%"==" " set "ContentCreateDate=%ContentCreateDate:~0,-1%" & goto :loop2
69.
if "%Genre1:~-1%"==" " set "Genre1=%Genre1:~0,-1%" & goto :loop2
70.
if "%Genre2:~-1%"==" " set "Genre2=%Genre2:~0,-1%" & goto :loop2
71.
if "%Genre3:~-1%"==" " set "Genre3=%Genre3:~0,-1%" & goto :loop2
72.
if "%Genre4:~-1%"==" " set "Genre4=%Genre4:~0,-1%" & goto :loop2
73.

74.
for /f "tokens=2 delims=^=" %%a in ('findstr /I "Staffel%DiskNumber%=" "%test%"') do set "TotalParts=%%a"
75.
set "ContentCreateDate=%ContentCreateDate: =-%"
76.

77.

78.
:XmlErstellen
79.

80.

81.

82.
setlocal disabledelayedexpansion
83.

84.

85.
wscript.exe "PfadzurVBS\Figure 1.vbs" "%Title%" "%TrackNumber%" "%DiskNumber%" "%TVNetworkname%" "%TVSeason%" "%TVEpisode%" "%Description%" "%LongDescription%" "%ContentCreateDate%" "%ChapterUID%" "%TotalParts%" "%Genre1%" "%Genre2%" "%Genre3%" "%Genre4%"
86.
pause
87.

88.
shift
89.

90.
if not [%1]==[] goto TagsAuslesen
91.

EDIT:

Lösung:

An den Anfang der Bat-Datei ein CHCP 1252.
Außerdem den Exifaufruf erweiterten
'T:\exiftool\exiftool.exe -charset Latin -Title -TrackNumber -DiskNumber -TVNetworkname -TVSeason -TVEpisode -Description -LongDescription -ContentCreateDate -Genre
Die Kodierung der BAT-File und der VBS-File muss ANSI sein.

Danach klappt die Übergabe und die Ausgabe in die XML-Datei.

Wer allerdings in der Konsole es auch richtig angezeigt bekommen möchte als Echo z.B. muss den Type Font der Konsole auf Lucida ändern.

Gruß
Mitglied: emeriks
15.08.2018, aktualisiert um 16:10 Uhr
Hi,
was spricht dagegen, in der VBS die übergebenen Parameter mittels Suchen-Erstzen zu "normalisieren". Die falschen Umlaute kommen doch immer mit dem selben Zeichencode rüber, oder?

Bsp.:
01.
02.
Const Ae = Chr(0815)
03.
Title = Replace(Title, Ae, "Ä")
E.

Edit:
Für das Ersetzen natürlich eine Funktion bauen, damit Du nicht für alle Parameter einzeln diese Replace-Kommandos brauchst.
Bitte warten ..
Mitglied: Django.Durano
15.08.2018 um 18:00 Uhr
Bin leider nicht so fit mit VBS.
Wenn ich deinen Code nun so bei mir einfüge bekomme ich einen Fehler Literalconstante fehlt/bzw. erwartet.

Die Umlaute kommen mit total komischen Zeichen rüber zumindest sieht es so aus.
Wenn ich ein echo Title machen sind da total komischen Zeichen mit dabei.
Bitte warten ..
Mitglied: rubberman
LÖSUNG 15.08.2018 um 20:52 Uhr
Ich weiß nicht was exiftool auswirft und wie/ob es auf die Änderung der Codepage reagiert. Irgendwie sollte das aber helfen. Lass mal die Codierung des Scripts bei Windows-1252 (so wie es Notepad bei Einstellung Ansi eigentlich speichern sollte). Dann spiel mal ein bisschen mit folgenden Konfigurationen in allen Kombinationsmöglichkeiten:
- das CHCP 1252 an den Anfang des Scripts
- das CHCP 1252 nach der Schleife mit dem exiftool Aufruf
- Aufruf des VBScripts mit cscript.exe //nologo statt wscript.exe

Steffen
Bitte warten ..
Mitglied: Django.Durano
17.08.2018 um 15:03 Uhr
@rubberman

Ich habe nun etwas probiert und auch herausgefunden das man bei exiftool auch ein charset/codepage bei der Ausgabe mit angeben kann.
Standard ist UTF8 habe es mal auf Latin was 1252 entspricht geändert.

Habe dann etwas mit der Codepage in der Bat probiert es gab aber leider keine brauchbare Lösung und die Umlaute wurden immer noch nicht richtig angezeigt.
Bitte warten ..
Mitglied: rubberman
LÖSUNG 17.08.2018 um 16:21 Uhr
Zitat von Django.Durano:
habe es mal auf Latin was 1252 entspricht geändert.
Das klingt aber eigentlich sehr vielversprechend. Script in Windows-1252 speichern und gleich am Anfang des Scripts das CHCP 1252 dann sollte die Sache funktionieren.

Steffen
Bitte warten ..
Mitglied: Django.Durano
18.08.2018 um 11:29 Uhr
Jetzt hat es funktioniert.

Habe jetzt das CHCP 1252 an den Anfang des Scriptes gesetzt und den Exifaufruf um das Charset Latin erweitert.
Die Bat-Datei ist in der Kodierung ANSI und nun passt es am Ende in der XMl-Datei.

Allerdings in der Konsole bekomme ich es immer noch nicht richtig angezeigt.

In der Konsole bekomme ich es nur richtig angezeigt wenn ich die Type Font auf Lucida ändere.
Bin da eher durch Zufall drüber gestossen als ich mit UTF-8 als Codepage probiert habe, da muss man es nämlich ändern damit es funktioniert.

Das die Ausgabe in der Konsole nicht richtig ist stört mich jetzt aber herzlich wenig.


Gruß
Bitte warten ..
Mitglied: rubberman
18.08.2018 um 11:38 Uhr
Zitat von Django.Durano:
Die Bat-Datei ist in der Kodierung ANSI und nun passt es am Ende in der XMl-Datei.
ANSI ist eine Gruppe von unterschiedlichsten Codierungen. Aber wie oben schon geschrieben, bedeutet das dass die Defaultcodierung herangezogen wird, was hierzulande Windows-1252 sein sollte. Passt.

Allerdings in der Konsole bekomme ich es immer noch nicht richtig angezeigt.
Das erfordert mehr Aufwand. Wenn du es nicht brauchst, lass es

Steffen
Bitte warten ..
Ähnliche Inhalte
HTML
Frage bezüglich HTML charset
gelöst Frage von ProtectedHTML13 Kommentare

Hallo, ich habe einen Problem mit den Umlauten. Leider werden diese bei mir nciht richtig angezeigt. Mein HTML -Code ...

VB for Applications
VBS Schleife
gelöst Frage von IleiesVB for Applications6 Kommentare

Hallo zusammen, Wie kann ich mit vbs machen, dass eine Musikdatei in einer Schleife ohne Ende immer wieder abgespielt ...

Microsoft Office
Microsoft Excel VBS
gelöst Frage von Mohji32Microsoft Office6 Kommentare

Guten Tag liebe Leute, ich kenne mich leider nicht sehr gut mit VBS aus aber habe angefangen mich einzuarbeiten. ...

VB for Applications
Excel VBS Datenvergleich
Frage von rocco61VB for Applications

Hallo zusammen, möchte ein Excel Makro in VB, das mit die Gleichheit von 2 Zellen in einer Meldung ausgibt. ...

Neue Wissensbeiträge
Administrator.de Feedback
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 6 StundenAdministrator.de Feedback

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Netzwerkmanagement

Neue Angebotsmail ist raus: 10 Prozent auf alle Docusnap Lizenzen

Information von Frank vor 13 StundenNetzwerkmanagement

Hallo IT-Pros, unsere Angebotsmail ist raus: Exklusive für unsere Administrator.de-Mitglieder gibt es heute auf alle Miet- und Kauflizenzen von ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 16 StundenWindows 103 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

E-Mail

Newsletter: Unread News - IT News in Byte Länge

Tipp von franktaylor vor 1 TagE-Mail9 Kommentare

Hallo, würde gerne auf einen Newsletter hinweisen, den ich heute per Zufall gefunden und mit euch gerne teilen möchte: ...

Heiß diskutierte Inhalte
Windows Server
Passwortänderung an RODC möglich?
Frage von DexthaWindows Server23 Kommentare

Hallo, ich habe einen RODC, auf welchen ich über ldaps (Web-Seite mit php7) Passwortänderungen durchführen möchte. Ist das grundsätzlich ...

Windows Server
Ungewollte IP Änderung am DC sorgt für Probleme
Frage von thomas-99Windows Server19 Kommentare

Hallo Zusammen, wir haben ein kleines Netz mit 5 verschiedenen VMs (DC, AD, Fileserver, Exchange, TK Anlage - alle ...

Windows Server
RDP als Citrix Alternative
gelöst Frage von samreinWindows Server19 Kommentare

Hallo zusammen, ich bin neu hier und das ist mein erster Beitrag. Ich bin Einzeladmin und wir setzen bei ...

Hyper-V
Novell virtualisieren
Frage von spoboeHyper-V18 Kommentare

Hallo zusammen, ich habe absolut keine Ahnung von Novell, aber wir haben hier ein ganz altes Schätzchen (vermutlich Novell ...