Nein, gerade nicht ReadTextFile benutzten sondern Kommandos zum Auslesen einer INI-Datei.
Sobald die Datei dann INI-Format hat. Bisher war es ja eine Textdatei mit einer INI-Endung
Beispiele mit und ohne verschachtelte Variablen:
[Set:Product]
SET V_Value=%Training.ini, Section, Key%
Echo %V_Value%
[Set:Product]
SET V_User=%%Training.ini, %WindowsUser%, Context%%
ReplaceEnv V_User
Echo %V_User%
Was meinen Sie mit Product-Install-Argument?
Ini Datei einlesen und alle Zeilen einzeln abarbeiten
-
- Moderator
- Posts: 7965
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
-
- Posts: 27
- Joined: 11. Sep 2012, 13:29
- Contact:
Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten
Hallo Zusammen,
also der Befehl READINI funktioniert nicht per Setup.inf bzw. unter Angabe in dieser. In der Doku fnde ich dazu speziell auch nur was in der "EIS.ini" Rubrik.
Ini ist so aufgebaut wurden:
[SWList]
PackageName=Paket1
PackageName=Paket2
PackageName=Paket3
Der Befehl in der Setup.inf lautet wie folgt:
....
READINI C:\EmpirumAgent\Packages\CC\BeispielPaket\Software,ini" SWList PackageName Variablenname
....
Für "PackageName" steht der Schlüssel welcher unter HKLM\Software\CC\"SCHLÜSSEL" entfernt werden soll. Ich möchte das aus dem Inhalt der "Software.ini" alle Paketnamen als Variable zwischen gespeichert werden und dann beim REG Delete Befel quasi ersetzt/eingesetzt werden ==> Beispiel: "Callhidden cmd /c reg delete "HKLM\Software\CC\%VARIABLE-AUS-DER-EINGELESENEN-INI% /f"
Da ich nun schon mehrere Stunden herum experimentiert habe, nun nochmal meine Bitte an alle die hier so nett sind und mir ein Feedback hinterlassen
--> Für was setze ich als Selektionsangabe "#!" ein ? --> Es wird mehrfach die Sektion angesprungen, richtig ? Wäre das für mich wirklich relevant und warum ?
--> Für was setze ich als Beispiel "FOR COUNTER 1,%angabe",1,, Angabe2" ein? und wie muss dieser Befehl weiter in der Setup.inf verwendet werden ? Was bedeuet "Die Zählvariable ist <Var> wird von der Untergrenze <LB> zur Obergrenze <UB> in <Inc> Schritten hoch gezählt. " ? Ich weiß das es die einzige Möglichkeit ist in der Setup.inf eine Schleife aufzurufen, richtig ?
Viele Grüße und besten Dank
also der Befehl READINI funktioniert nicht per Setup.inf bzw. unter Angabe in dieser. In der Doku fnde ich dazu speziell auch nur was in der "EIS.ini" Rubrik.
Ini ist so aufgebaut wurden:
[SWList]
PackageName=Paket1
PackageName=Paket2
PackageName=Paket3
Der Befehl in der Setup.inf lautet wie folgt:
....
READINI C:\EmpirumAgent\Packages\CC\BeispielPaket\Software,ini" SWList PackageName Variablenname
....
Für "PackageName" steht der Schlüssel welcher unter HKLM\Software\CC\"SCHLÜSSEL" entfernt werden soll. Ich möchte das aus dem Inhalt der "Software.ini" alle Paketnamen als Variable zwischen gespeichert werden und dann beim REG Delete Befel quasi ersetzt/eingesetzt werden ==> Beispiel: "Callhidden cmd /c reg delete "HKLM\Software\CC\%VARIABLE-AUS-DER-EINGELESENEN-INI% /f"
Da ich nun schon mehrere Stunden herum experimentiert habe, nun nochmal meine Bitte an alle die hier so nett sind und mir ein Feedback hinterlassen
--> Für was setze ich als Selektionsangabe "#!" ein ? --> Es wird mehrfach die Sektion angesprungen, richtig ? Wäre das für mich wirklich relevant und warum ?
--> Für was setze ich als Beispiel "FOR COUNTER 1,%angabe",1,, Angabe2" ein? und wie muss dieser Befehl weiter in der Setup.inf verwendet werden ? Was bedeuet "Die Zählvariable ist <Var> wird von der Untergrenze <LB> zur Obergrenze <UB> in <Inc> Schritten hoch gezählt. " ? Ich weiß das es die einzige Möglichkeit ist in der Setup.inf eine Schleife aufzurufen, richtig ?
Viele Grüße und besten Dank
-
- Moderator
- Posts: 7965
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten
Es gibt in der setup.inf Sprache keinen READINI-Befehl! Das gibt es nur in EIS.
Daher hatte ich in meiner vorherigen ja das Auslesen von INI-Dateien mit Beispielen gezeigt
Außerdem ist das von Ihnen gezeigte Beispiel keine valide INI-Datei weil die Schlüsselnamen nicht eindeutig sind.
Es muss PackageName1, PackageName2, usw. sein - sonst ist es keine INI-Datei.
#!: Ist für FOR-Schleifen überflüssig. Nur wenn man das innerhalb einer Sektion später machen will.
Die FOR-Schleife brauchen Sie zum Auslesen der Datei um von oben nach unten durchzugehen.
Ist aber NICHT die einzige Möglichkeit für Schleifen, Sie können auch mit #! arbeiten und dann irgendwann das Script mit EXIT oder ABORT beenden.
Daher hatte ich in meiner vorherigen ja das Auslesen von INI-Dateien mit Beispielen gezeigt
Außerdem ist das von Ihnen gezeigte Beispiel keine valide INI-Datei weil die Schlüsselnamen nicht eindeutig sind.
Es muss PackageName1, PackageName2, usw. sein - sonst ist es keine INI-Datei.
#!: Ist für FOR-Schleifen überflüssig. Nur wenn man das innerhalb einer Sektion später machen will.
Die FOR-Schleife brauchen Sie zum Auslesen der Datei um von oben nach unten durchzugehen.
Ist aber NICHT die einzige Möglichkeit für Schleifen, Sie können auch mit #! arbeiten und dann irgendwann das Script mit EXIT oder ABORT beenden.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
-
- Posts: 27
- Joined: 11. Sep 2012, 13:29
- Contact:
Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten
Also ich hab es jetzt... also FASTHendrik_Ambrosius wrote:Nein, gerade nicht ReadTextFile benutzten sondern Kommandos zum Auslesen einer INI-Datei.
Sobald die Datei dann INI-Format hat. Bisher war es ja eine Textdatei mit einer INI-Endung
Beispiele mit und ohne verschachtelte Variablen:
[Set:Product]
SET V_Value=%Training.ini, Section, Key%
Echo %V_Value%
[Set:Product]
SET V_User=%%Training.ini, %WindowsUser%, Context%%
ReplaceEnv V_User
Echo %V_User%
Was meinen Sie mit Product-Install-Argument?
Arbeite nun mit einer Ini als Inhalt:
[PackageList]
PackageName1=PaketTestName1
PackageName2=PaketTestName2
PackageName3=PaketTestName3
inklusive dem Befehl:
.......
Set Read-PackageName=%C:\EmpirumAgent\Packages\CC\PackageTestName\SW-Packages-old.ini, PackageList, PackageName1%
.......
Nun meine Frage, wie soll die FOR-Schleife die Ini durchlaufen wenn ich doch ganz hinten am Befehl die zu lesende Zeile angeben muss --> wie oben im Beispiel PackageName1% angegeben. Ich möchte ja alle Zeilen einlesen als PackageName1-3. Dafür sollte ich ja den Befehl für die Schleife mit:
SET COUNTER 1,,1, Variable_Name
benutzen ! irgendwie stehe ich auf dem Schlauch
Woher weiß nun die Schleife welche Werte Sie alle aus der ini ermitteln soll ?
Ich bin kurz vorm Ziel und Sie sind hier wohl leider der einzige wie schon erwartet der mir Hilfe anbietet
Viele Grüße
-
- Moderator
- Posts: 7965
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten
Dafür ist doch die Counter-Variable da: PackageName1 durch PackageName%Counter% ersetzen.
Dann den Lesebefehl noch mal in weitere "%" verpacken und ein ReplaceEnv dahinter wie in meinem zweiten Beispiel.
Dann den Lesebefehl noch mal in weitere "%" verpacken und ein ReplaceEnv dahinter wie in meinem zweiten Beispiel.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
-
- Posts: 27
- Joined: 11. Sep 2012, 13:29
- Contact:
Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten
ES LÄUFT !!! Zwei"%" Zeichen waren die Übeltäter. Ich hatte bereits heute Mittag schon den Counter hinter meinen Ini Read Befehl gesetzt. Jedoch habe ich die "%" Zeichen vor und hinter dem Befehl nicht gesetzt ^^
1000 Dank Herr Ambrosius dafür und vorallem auch für ihre GeduldHendrik_Ambrosius wrote:Dafür ist doch die Counter-Variable da: PackageName1 durch PackageName%Counter% ersetzen.
Dann den Lesebefehl noch mal in weitere "%" verpacken und ein ReplaceEnv dahinter wie in meinem zweiten Beispiel.
Who is online
Users browsing this forum: No registered users and 5 guests