andre-ha
Goto Top

-Vollständiger Username- aus AD per Batch für Word aufbereiten- Problem mit Umlauten

Hallo.
Ich bin schon einige Zeit als Gast hier und habe auch schon ein paar Lösungen gefunden. Aber jetzt steh ich auf dem Schlauch. Obwohl mir scheint, mein Problem müsste ein Allerwelts-Problem sein, hab ich hier noch keine Lösung gefunden.

Beim folgenden Vorhaben tauchen Probleme auf, sobald Umlaute im Spiel sind:

Ich fülle die Variable %anwendername% per

    for /f "tokens=2*" %%i in ('net user "%anwenderID%" /domain^|findstr "Vollst"') do set anwendername=%%j   

Danach wird %anwendername% in die neu zu erzeugende ta.xml geschrieben:

          del x:\ta.xml >nul 2>nul
           echo ^<daten^> >>ta.xml
           echo ^<aw-a^>%anwendername%^</aw-a^> >>ta.xml
           echo ^</daten^> >>ta.xml

so dass diese dann wie folgt aussieht:
*** ta.xml***
<daten> 
<aw-a>Mustermann, Max</aw-a> 
</daten> 

Mit dieser xml wird dann per vbs-script eine "docvariable" in einem Word-Dokument aktualisiert:

** .vbs script ***
dim datei
dim xml
dim mainelement
dim feld
set xml = createobject("msxml2.domdocument")  
if not xml.load ("x:\ta.xml") then  
msgbox "XML-Daten konnten nicht geladen werden"  
stop
end if
set datei = getobject("x:\ta.doc")  
set mainelement = xml.documentelement
setVariable "aw-n", mainelement.selectsinglenode("./anwendername").text  
for each feld in datei.fields
feld.update
next
datei.save
datei.close
sub setVariable(VarName, Wert)
On Error Resume Next
datei.Variables.Item(VarName).Value = Wert
If Err.Number <> 0 Then
datei.variables.add VarName, Wert
end if
End Sub

Das klappt alles wunderbar, solange %anwendername% keine Umlaute enthält.
ist der Anwedername nämlich "Jansen, Jörg" , dann steht "Jansen, j”rg" im ta.xml und die Verarbeitung wird wegen Fehlers abgebrochen.


Nach allem, was ich hier gelesen habe, hat das mit dem ASCII Satz in der cmd und mit dem Ansi im Word zu tun.

Frage also:
Kann ich in der xml vielleicht irgendwie deklarieren (das das vbs-script Bescheid weiß), dass es sich um ASCII-Zeichen handelt und sie dem entsprechend behandelt werden sollen?
oder
Kann ich die Variablen irgendwie umwandeln, bevor ich sie in die xml datei schreibe?

Content-Key: 125190

Url: https://administrator.de/contentid/125190

Ausgedruckt am: 19.03.2024 um 09:03 Uhr

Mitglied: Andre-Ha
Andre-Ha 23.09.2009 um 12:45:54 Uhr
Goto Top
Moin zusammen.

Bin ich denn wirklich der einzige, der Daten aus der Domäne in Office verarbeiten will?
Vielleicht hab ich's ja zu kompliziert formuliert:

Folgendes Beispiel:
C:\>echo üäö >>x.txt (Umlaute in ein txt-file geschrieben: OK)

C:\>type x.txt (txt-file aufgelistet:OK)
üäö

C:\>notepad x.txt txt-file mit Notepad geöffnet: nur "komische Zeichen")
„”
Was muss ich vorher tun, damit beim Öffnen des txt-files mit Notepad auch "üäö" angezeigt wird?
Mitglied: 81825
81825 23.09.2009 um 12:48:26 Uhr
Goto Top
Hallo,

alle Tage wieder .....

Das Forum hat eine Suchfunktion, die sogar funktioniert.
Mitglied: Andre-Ha
Andre-Ha 24.09.2009 um 10:58:32 Uhr
Goto Top
Hallo Peter,
danke für den freundlichen Hinweis.

Ich hatte am Anfang meiner Nachfrage geschrieben:
Hallo. Ich bin schon einige Zeit als Gast hier und habe auch schon ein paar Lösungen gefunden. Aber jetzt steh ich auf dem Schlauch. Obwohl mir scheint, mein Problem müsste ein Allerwelts-Problem sein, hab ich hier noch keine Lösung gefunden.

Noch keine Lösung gefunden bedeutet dabei, dass ich selbstverständlich (dutzendfach) die Suchfuntion benutzt habe. Vielleicht habe ich aber die falschen Suchbegriffe verwendet!?

Ich habe das Problem teilweise selbst gelöst, indem ich die codepage temporär umgestellt habe:

chcp 1252 >nul
echo ^<daten^> >>ta.xml
echo ^<aw-a^>%anwendername%^</anwendername^> >>ta.xml
echo ^</daten^> >>ta.xml
chcp 8502 >nul

Nun kommen die korrekten Umlaute in der ta.xml an, aber die Verarbeitung bricht immer noch ab mit der Meldung:
XML-Daten konnten nicht geladen werden

und danach vom Windows Script Host

Fehler: Objekt erforderlich - Code: 800A01A8 - Quelle: Laufzeitfehler in Microsoft VBScript

für diese Zeile im der ta.vbs
setVariable "aw-n", mainelement.selectsinglenode("./aw-n").text  

Das Problem ist also, das das VBS Script die Ümlaute nicht verarbeiten kann.
Kann man das anpassen?
Mitglied: 81825
81825 24.09.2009 um 11:14:40 Uhr
Goto Top
Hallo,
Vielleicht habe ich aber die falschen Suchbegriffe verwendet!?

Versuche es doch mal mit den völlig ungewöhnlichen Suchbegriffen "Umlaute Batch".
Mitglied: Andre-Ha
Andre-Ha 29.09.2009, aktualisiert am 18.10.2012 um 18:39:29 Uhr
Goto Top
Danke, der Hinweis hat letztendlich zum Erfolg geführt.

Ich hab nach längerer Probiererei das Spielen mit den Codepages gelassen und ein script von
LotPings aus dem thread Umlaute aus Variable entfernen, und dann nicht benutze Kombination aus Vor- und Nachnamen bilden eingebaut.

Das macht jetzt aus jedem ö ein oe usw und das Problem hat sich erledigt.