Variable in geschachtelter Variable mehrfach ersetzen

Post Reply
i.pohlschneider
Posts: 7
Joined: 23. Apr 2013, 12:40
Contact:

Variable in geschachtelter Variable mehrfach ersetzen

Post by i.pohlschneider » 07. Jun 2013, 12:25

Hallo
ich habe folgendes vor:

Ich habe in Environment eine Variable definiert:

Code: Select all

InstPara=wusa.exe "%SRC%\Source\IE9-Windows6.1-LanguagePack-x64-%%MUIlang%%.msu" /quiet /norestart
Nun möchte ich mehrere Sprachpakete installieren und dazu in meiner Setupsektion etwa folgendes tun:

Code: Select all

Set MUIlang=deu
ReplaceEnv %InstPara%
Call %InstPara%

set ErrorLogMessage = "Internet Explorer 9 Lang Pack FR"
Set MUIlang=fra
ReplaceEnv %InstPara%
Call %InstPara%
Dabei soll die Variable MUIlang jeweils neu gesetzt werden und dann im Call verwendet werden.

Dies funktioniert aber nicht.

Was muss ich tun um das hinzukriegen bzw. geht das überhaupt?

Gruß

Walter_Schulz
Posts: 876
Joined: 17. Dec 2004, 12:29
Contact:

Re: Variable in geschachtelter Variable mehrfach ersetzen

Post by Walter_Schulz » 07. Jun 2013, 12:57

Nach dem ersten Aufruf von ReplaceEnv wird %MUIlang% in der Variablen InstPara durch deu ersetzt und damit steht %MUIlang% nicht mehr zur Verfuegung.
Abhilfe ist das Zuweisen von InstPara auf eine 2. Variable, wobei InstPara nicht mit ReplaceEnv behandelt wird

Set Temp_InstPara=%InstPara%
Set MUIlang=deu
ReplaceEnv %Temp_InstPara%
Call %Temp_InstPara%

Set %Temp_InstPara=%InstPara%
set ErrorLogMessage = "Internet Explorer 9 Lang Pack FR"
Set MUIlang=fra
ReplaceEnv %Temp_InstPara%
Call %Temp_InstPara%

Bitte testen.

Ciao!
Walter Schulz

i.pohlschneider
Posts: 7
Joined: 23. Apr 2013, 12:40
Contact:

Re: Variable in geschachtelter Variable mehrfach ersetzen

Post by i.pohlschneider » 07. Jun 2013, 13:44

Hallo
so hatte ich mir das auch gedacht und so ähnlich schonmal ausprobiert.

Es funktioniert aber leider nicht :(

Im Debugger sieht man, dass Temp_InstPara noch die Variable unaufgelöst drin hat (%MSIlang%)

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

Re: Variable in geschachtelter Variable mehrfach ersetzen

Post by r.wiegel » 07. Jun 2013, 14:03

Hallo,

wie wäre es mit einer Schleife?:

Code: Select all

...
Set MuiLang=deu;fra;foo;...

Set NumberOfTokens=Tokenize (MuiLang,";")
For Counter, 1,%NumberOfTokens%,1,Set:Install

[Set:Install]
Set MuiLang_Value=%%MuiLang%Counter%% 
ReplaceEnv MuiLang_Value
echo %MuiLang_Value%
Call wusa.exe "%SRC%\Source\IE9-Windows6.1-LanguagePack-x64-%MUIlang_Value%.msu" /quiet /norestart
...

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

MR Datentechnik - Vertriebs- und Service GmbH

Walter_Schulz
Posts: 876
Joined: 17. Dec 2004, 12:29
Contact:

Re: Variable in geschachtelter Variable mehrfach ersetzen

Post by Walter_Schulz » 07. Jun 2013, 14:15

Stimmt, mein Konstrukt funktioniert nicht.
Das hier tut, ist aber nicht so elegant wie die Schleife

Code: Select all

Set MUIlang=deu
Call wusa.exe "%SRC%\Source\IE9-Windows6.1-LanguagePack-x64-%MUIlang%.msu" /quiet /norestart

set ErrorLogMessage = "Internet Explorer 9 Lang Pack FR"
Set MUIlang=fra
Call wusa.exe "%SRC%\Source\IE9-Windows6.1-LanguagePack-x64-%MUIlang%.msu" /quiet /norestart
Ciao!
Walter Schulz

i.pohlschneider
Posts: 7
Joined: 23. Apr 2013, 12:40
Contact:

Re: Variable in geschachtelter Variable mehrfach ersetzen

Post by i.pohlschneider » 07. Jun 2013, 14:32

Hallo
mit der Schleife funktioniert :)

Gefällt mir sehr gut, da ich so das Paket sehr schnell erweitern kann :)

Einfach neue Sourcen hinzufügen und eine Zeile ergänzen :)

Danke für die schnelle Hilfe :)

Gruß

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 14 guests