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

batch Umlaute richtig darstellen

Frage Entwicklung Batch & Shell

Mitglied: joni2000de

joni2000de (Level 1) - Jetzt verbinden

05.10.2009 um 23:07 Uhr, 7642 Aufrufe, 6 Kommentare

Hallo Admins,

ich stehe vor folgendem Rätsel. In einer Batchdatei steht die Zeile

f:\exe\run.exe P:\MäJ\Parameter.par

Diese Zeile wurde mit VBS erzeugt.

Wenn ich die Batchdatei jetzt aufrufe wird das ä in MäJ entweder als o mit Tilde (Codepage 1252) oder als § (Codepage 850) übergeben.

Ich hatte früher mal das Problem, dass die Werte nicht richtig in eine Datei geschrieben wurden, wenn die Codepage falsch war. Ausgelesen wurden diese dann richtig. Dieses Mal ist es umgekehrt. Die Werte werden richtig eingetragen aber falsch ausgelesen.

Kennt jemand das Problem und wie konnte es gelöst werden.

Danke für euer Hilfe.

Gruß Joni
Mitglied: rubberman
06.10.2009 um 00:26 Uhr
Hallo joni2000de,

dazu fällt mir nur ein, dass dein VBScript ein paar Zeilen mehr ausgeben müsste:
01.
chcp 1252>nul 
02.
set "aufruf=f:\exe\run.exe P:\MäJ\Parameter.par" 
03.
chcp 850>nul 
04.
%aufruf%
Grüße
rubberman
Bitte warten ..
Mitglied: joni2000de
06.10.2009 um 15:13 Uhr
Hallo Rubberman,

habe deine Anregung übernommen erhalte jetzt aber die Fehlermeldung "Funktion nicht definiert".

Wie schaut hier die Definition aus?

Danke

Gruß Joni
Bitte warten ..
Mitglied: rubberman
07.10.2009 um 00:07 Uhr
Hallo joni2000de,

ehrlich gesagt kann ich nicht nachvollziehen, woher der Fehler kommt. Möglich wäre immerhin, dass entgegen deinem geposteten Schnipsel, die Pfade Leerzeichen enthalten. In dem Fall solltest du das ganze wie folgt abändern:
01.
chcp 1252>nul 
02.
set aufruf="f:\exe\run.exe" "P:\MäJ\Parameter.par" 
03.
chcp 850>nul 
04.
%aufruf%
und überprüfe, ob die Anführungszeichen im Batchcode auch tatsächlich in dieser Form erscheinen.

Grüße
rubberman

PS: Warum startest du das ganze nicht gleich aus dem VBScript? Die Run-Methode ist leicht zu bedienen.
Bitte warten ..
Mitglied: joni2000de
07.10.2009 um 12:12 Uhr
Hallo Rubberman,

Leerzeichen sind im Pfad keine vorhanden.

Die Batchdatei wird mit folgendem Code erzeugt:

01.
Open PFADIXHAUS & SBBATCH For Output As #1 
02.
Print #1, "f:" 
03.
Print #1, PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR1 & PARAMETERDATEI 
04.
Print #1, PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR2 & PARAMETERDATEI 
05.
Print #1, PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR3 & PARAMETERDATEI 
06.
Print #1, PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR4 & PARAMETERDATEI 
07.
Print #1, PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR5 & PARAMETERDATEI 
08.
Close #1
Dann sollte die Batchdatei aufgerufen werden. Wenn ich mit

01.
USERNAME = Replace(USERNAME, "ä", "a")
das ä ersetzen lasse funktioniert der Aufruf mit

01.
Shell PFADIXHAUS & SBBATCH, vbHide
wie er sollte. Dabei ist das einzige Problem, dass der Ordner in dem die Dateien abgelegt werden nicht MäJ sonder MaJ heißt. Wenn es zu kompliziert wird, werde ich den Schönheitsfehler in Kauf nehmen.

Die Run-Methode habe ich auch schon probiert. Da erhalte ich einen Laufzeitfehler 424. Trotz längerem suchen bin ich da auch noch nicht auf die Lösung gekommen.

Die Batchdatei brauche ich, da der Aufruf von einem ganz bestimmten Ort aus erfolgen muss, da ansonsten die exe nicht funktioniert. Sonst wäre das nicht so kompliziert.

Gruß Joni
Bitte warten ..
Mitglied: rubberman
07.10.2009 um 22:51 Uhr
Hallo joni2000de,

du bist sicher, dass du von VBS redest und nicht von VB(A)? Naja egal.
Hast du das schon mal so versucht
01.
Open PFADIXHAUS & SBBATCH For Output As #1 
02.
Print #1, "@echo off &setlocal" 
03.
Print #1, "f:" 
04.
Print #1, "chcp 1252>nul" 
05.
Print #1, "set aufruf1=" & PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR1 & PARAMETERDATEI 
06.
Print #1, "set aufruf2=" & PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR2 & PARAMETERDATEI 
07.
Print #1, "set aufruf3=" & PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR3 & PARAMETERDATEI 
08.
Print #1, "set aufruf4=" & PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR4 & PARAMETERDATEI 
09.
Print #1, "set aufruf5=" & PFADIXHAUS & "exe\ic7100.exe " & PFAD & USERNAME & "\" & PAR5 & PARAMETERDATEI 
10.
Print #1, "chcp 850>nul" 
11.
Print #1, "%aufruf1%" 
12.
Print #1, "%aufruf2%" 
13.
Print #1, "%aufruf3%" 
14.
Print #1, "%aufruf4%" 
15.
Print #1, "%aufruf5%" 
16.
Close #1
Grüße
rubberman
Bitte warten ..
Mitglied: joni2000de
09.10.2009 um 10:36 Uhr
Hallo rubberman,

ich habe jetzt die Variante mit dem Ersetzen der Umlaute eingebaut. Das funktioniert soweit problemlos. Ich werde deine Variante bei Gelegenheit auch mal ausprobieren, kann aber noch etwas dauern.

Wie du richtigerweise festgestellt hast meinte ich VBA. Ich denke das sollte sich auf diesen Teil meiner Meinung nach jedoch nicht auswirken.

Auf jeden Fall vielen Dank für deine Hilfe.

Gruß Joni
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
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 ...