Ausgelesene Variable enthält Leerzeichen

Post Reply
User avatar
Dirk
Posts: 104
Joined: 11. Jan 2005, 14:24
Location: Gütersloh
Contact:

Ausgelesene Variable enthält Leerzeichen

Post by Dirk » 15. Apr 2013, 12:23

Hallo Gemeinde,

ich versuche gerade im Internet Explorer Paket eine Installation der passenden MUI für den IE9 mit einzubauen.

Wir haben 9 verschiedene Sprachen im Einsatz. Windows 7 wird in der englischen Vesion ausgerollt und in den OS Templates sind dann die Sprachpakete eingebunden.

Um den IE 9 jetzt auch mit der passenden MUI auszurollen, habe ich folgendes vor:

Set UILang=%%HKLM,"SYSTEM\CurrentControlSet\Control\MUI\Settings","PreferredUILanguages"%%
ReplaceEnv UILang


Die ausgelesene Sprache würde ich dann wie folgt nutzen um die Installation der MUI Datei aufzurufen:

Call "%SRC%\Daten\IE9-Windows6.1-LanguagePack-x64-%UILang%.msu" /quiet

Das auslesen des Wertes %UILang% klappt sauber, aber der anschließende Call Aufruf bricht dann mit folgender Meldung ab:

Fehler 2 (is klar)!

\EMPSERVER\Configurator$\Packages\Microsoft\Internet Explorer\9.0\aten\IE9-Windows6.1-LanguagePack-x64-de-DE .msu /quiet

Wie man in rot sieht habe ich 3 Probleme:
1. nur einen \ am Anfang (ist das normal ?)
2. \aten\ anstelle von \Daten\ (evtl. nur ein Darstellungsproblem in der FM Box, da genau dort der Zeilenumbruch ist?)
3. Wohl das Hauptproblem, der ausgelesene Wert Set UILang=%%HKLM,"SYSTEM\CurrentControlSet\Control\MUI\Settings","PreferredUILanguages"%% enthält ca. 4 bis 5 Leerstellen nach dem Wert ("de-DE ") wenn ich diese Variable dann übernehme, kann der Aufruf zur MUI Installation natürlich nicht klappen.

Wie bekomme ich die Leerstellen weg?

Danke für Eure Hilfe.

D.E.

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by r.wiegel » 15. Apr 2013, 12:52

Hallo Dirk,
Wie bekomme ich die Leerstellen weg?
etwa so:

Code: Select all

If Right("%UILang%", 1)=" " Then "RemoveBlank" EndIf

[RemoveBlank]
Set UILang=RemoveFromRight("%UILang%", 1)
Echo |%UILang%|<--
If Right("%UILang%", 1)=" " Then "RemoveBlank" EndIf
Das ist als ein Workaround anzusehen. Es gibt bestimmt eine schönere Lösung.

Gruß
Roman
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

User avatar
Dirk
Posts: 104
Joined: 11. Jan 2005, 14:24
Location: Gütersloh
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by Dirk » 15. Apr 2013, 13:32

Hallo Roman,

werde es auf jeden Fall mal testen. Danke Dir!

Gruß,
Dirk


EDIT: Klappt leider nicht :( , geht über die 1. Zeile (If Right("%UILang%", 1)=" " Then "RemoveBlank" EndIf) einfach drüber weg.

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by r.wiegel » 15. Apr 2013, 14:06

beinhaltet die Variable wirklich Leerzeichen am Ende oder kommen die bei der Auflösung später dazu?
Man kan das mit dem Echo testen:

Code: Select all

ReplaceEnv UILang
Echo %UILang%|
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

User avatar
Dirk
Posts: 104
Joined: 11. Jan 2005, 14:24
Location: Gütersloh
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by Dirk » 15. Apr 2013, 14:14

Genau so habe ich das getestet, nur mit einem L hinter der Variable.
Sieht dann so aus:

"de-DE____L" (Leerzeichen werden hier irgendwie rausgelöscht, deshalb Unterstriche!)

User avatar
r.wiegel
Posts: 903
Joined: 05. Feb 2010, 13:45
Location: Regensburg
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by r.wiegel » 15. Apr 2013, 14:47

Den rekursiven Aufruf habe ich schon mal eingesetzt...
Könntest du bitte deine Setup.inf posten?
Viele Grüße
Roman Wiegel
IT-Consultant

MR Datentechnik - Vertriebs- und Service GmbH

User avatar
Dirk
Posts: 104
Joined: 11. Jan 2005, 14:24
Location: Gütersloh
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by Dirk » 15. Apr 2013, 15:09

Ich denke ich habs, so zeigt ECHO auf jeden Fall den Wert ohne Leerstellen an:

[Set:UILang]
Set UILang=%%HKLM,"SYSTEM\CurrentControlSet\Control\MUI\Settings","PreferredUILanguages"%%
ReplaceEnv UILang
Set UILang_Test=RemoveFromRight ("%UILang%", 1)
Echo %UILang_Test%


Wenn ich das richtig verstehe, dann muss ein neuer Variablenname für den Wert mit abgeschnittenen Leerstellen erstellt werden. Kann das sein?

thophi
Posts: 26
Joined: 05. Nov 2008, 16:34
Location: Hannover
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by thophi » 15. Apr 2013, 16:00

Hallo,

statt removefrom right wäre hier doch die Left-Funktion viel schöner. Es sind ja immer 5 Zeichen die benötigt werden und die stehen am Anfang.

also im obigen Kontext

Set UILang_test=Left("%UILang%",5)

Mit Gruss aus Hannover
Thomas
Alles wird gut...irgendwann....irgendwo....

Empirum 16.1.3

User avatar
Dirk
Posts: 104
Joined: 11. Jan 2005, 14:24
Location: Gütersloh
Contact:

Re: Ausgelesene Variable enthält Leerzeichen

Post by Dirk » 15. Apr 2013, 16:05

Stimmt, macht mehr Sinn!
Läuft jetzt so wie gewollt!

Danke und Grüße aus OWL,
Dirk

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 16 guests