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, 7667 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
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Ähnliche Inhalte
Batch & Shell
Altebekanntes Batch umlaute Problem (txt editor) (2)

Frage von Ritrivia zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Batch & Shell
gelöst Systemvariable über Batch nicht abrufbar! (7)

Frage von Brotkasten zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch für File extension überprüfung und listenerstellungmit Zeit und Datum (2)

Frage von watch123 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (15)

Frage von Winuser zum Thema Hyper-V ...

Windows Server
gelöst Rechte als Admin vergeben - Zugriff verweigert (14)

Frage von Ghost108 zum Thema Windows Server ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (12)

Frage von ProfessorZ zum Thema Router & Routing ...