Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7411
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Beitrag von Hendrik_Ambrosius » 09. Nov 2013, 14:10

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?
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | 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 AG or of the support team.

LarsJasch_CC
Beiträge: 27
Registriert: 11. Sep 2012, 13:29
Kontaktdaten:

Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Beitrag von LarsJasch_CC » 10. Nov 2013, 20:51

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 ;-)

:mrgreen: :mrgreen: :mrgreen: :mrgreen:
--> 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

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7411
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Beitrag von Hendrik_Ambrosius » 10. Nov 2013, 22:18

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.
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | 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 AG or of the support team.

LarsJasch_CC
Beiträge: 27
Registriert: 11. Sep 2012, 13:29
Kontaktdaten:

Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Beitrag von LarsJasch_CC » 11. Nov 2013, 13:10

Hendrik_Ambrosius hat geschrieben: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?
Also ich hab es jetzt... also FAST ;-)

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 :roll: :cry:

Woher weiß nun die Schleife welche Werte Sie alle aus der ini ermitteln soll ?

Ich bin kurz vorm Ziel :lol: :lol: und Sie sind hier wohl leider der einzige wie schon erwartet :mrgreen: :mrgreen: der mir Hilfe anbietet ;-)

Viele Grüße

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7411
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Beitrag von Hendrik_Ambrosius » 11. Nov 2013, 13:23

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.
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | 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 AG or of the support team.

LarsJasch_CC
Beiträge: 27
Registriert: 11. Sep 2012, 13:29
Kontaktdaten:

Re: Ini Datei einlesen und alle Zeilen einzeln abarbeiten

Beitrag von LarsJasch_CC » 11. Nov 2013, 14:05

:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: 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 ^^
Hendrik_Ambrosius hat geschrieben: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.
1000 Dank Herr Ambrosius dafür und vorallem auch für ihre Geduld ;-)

Antworten

Zurück zu „Hilfe und FAQ“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast