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

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

Frage Entwicklung Batch & Shell

Mitglied: Andre-Ha

Andre-Ha (Level 1) - Jetzt verbinden

17.09.2009, aktualisiert 18.10.2012, 6045 Aufrufe, 5 Kommentare

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

01.
    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:

01.
          del x:\ta.xml >nul 2>nul 
02.
           echo ^<daten^> >>ta.xml 
03.
           echo ^<aw-a^>%anwendername%^</aw-a^> >>ta.xml 
04.
           echo ^</daten^> >>ta.xml
so dass diese dann wie folgt aussieht:
01.
*** ta.xml*** 
02.
<daten>  
03.
<aw-a>Mustermann, Max</aw-a>  
04.
</daten> 
Mit dieser xml wird dann per vbs-script eine "docvariable" in einem Word-Dokument aktualisiert:

01.
** .vbs script *** 
02.
dim datei 
03.
dim xml 
04.
dim mainelement 
05.
dim feld 
06.
set xml = createobject("msxml2.domdocument") 
07.
if not xml.load ("x:\ta.xml") then 
08.
msgbox "XML-Daten konnten nicht geladen werden" 
09.
stop 
10.
end if 
11.
set datei = getobject("x:\ta.doc") 
12.
set mainelement = xml.documentelement 
13.
setVariable "aw-n", mainelement.selectsinglenode("./anwendername").text 
14.
for each feld in datei.fields 
15.
feld.update 
16.
next 
17.
datei.save 
18.
datei.close 
19.
sub setVariable(VarName, Wert) 
20.
On Error Resume Next 
21.
datei.Variables.Item(VarName).Value = Wert 
22.
If Err.Number <> 0 Then 
23.
datei.variables.add VarName, Wert 
24.
end if 
25.
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?
Mitglied: Andre-Ha
23.09.2009 um 12:45 Uhr
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?
Bitte warten ..
Mitglied: 81825
23.09.2009 um 12:48 Uhr
Hallo,

alle Tage wieder .....

Das Forum hat eine Suchfunktion, die sogar funktioniert.
Bitte warten ..
Mitglied: Andre-Ha
24.09.2009 um 10:58 Uhr
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:

01.
chcp 1252 >nul 
02.
echo ^<daten^> >>ta.xml 
03.
echo ^<aw-a^>%anwendername%^</anwendername^> >>ta.xml 
04.
echo ^</daten^> >>ta.xml 
05.
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
01.
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?
Bitte warten ..
Mitglied: 81825
24.09.2009 um 11:14 Uhr
Hallo,
Vielleicht habe ich aber die falschen Suchbegriffe verwendet!?

Versuche es doch mal mit den völlig ungewöhnlichen Suchbegriffen "Umlaute Batch".
Bitte warten ..
Mitglied: Andre-Ha
29.09.2009, aktualisiert 18.10.2012
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 http://www.administrator.de/forum/umlaute-aus-variable-entfernen%2c-und ... eingebaut.

Das macht jetzt aus jedem ö ein oe usw und das Problem hat sich erledigt.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst AD: alle Domänen Benutzer - Problem OU CN (2)

Frage von lupolo zum Thema Batch & Shell ...

Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

Microsoft Office
gelöst Word 2010 - Problem mit Zuweisung von Druckerfächern (5)

Frage von imebro zum Thema Microsoft Office ...

Batch & Shell
gelöst Problem mit "username" abfrage in Batch Dateien (5)

Frage von KriAIT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...