Variablen Text-String ersetzen

Moderator: MVogt

Antworten
Benutzeravatar
martinz71
Beiträge: 10
Registriert: 25. Jul 2008, 18:51
Kontaktdaten:

Variablen Text-String ersetzen

Beitrag von martinz71 » 11. Feb 2010, 11:27

Hallo,

möchte in einem per Reg Export erzeugten Textfile einen "XYZ Wert" durch einen "festen Wert" ersetzen.

zb.
SrcPath"="\\\\server1-9999\\Configurator$\\Packages\\Adobe\\Acrobat Reader DEU\\9.3.0"

hier soll \\\\server1-9999\\Configurator$ durch \\\\%EmpirumServer%\\Configurator$ ersetzt werden!

da der Server1-9999 immer unterschiedlich ist, ist ein ersetzen mit

ReplaceTextFile ("%temp%\HKLM_EMPIRUM.ini", "\\\\server1-9999\\Configurator$", "\\\\%EmpirumServer%\\Configurator$", 0)

nicht ohne weiters möglich! Da der Wert "Server1-9999" immer unterschiedlich ist!

Welche Möglichkeiten kämen in Frage!!

Walter_Schulz
Beiträge: 876
Registriert: 17. Dez 2004, 12:29
Kontaktdaten:

Beitrag von Walter_Schulz » 11. Feb 2010, 13:18

Gehe ich recht in der Annahme, dass Sinn und Zweck der Aktion sein soll, in der Registry der Rechner alle Eintraegen \\Server-xxxx\Configurator$ durch \\%EmpirumServer%\Configurator$ zu ersetzen?

Duerfte sich ausschliesslich um REG_SZ handeln, oder?

Ciao!
Walter Schulz

Benutzeravatar
martinz71
Beiträge: 10
Registriert: 25. Jul 2008, 18:51
Kontaktdaten:

Beitrag von martinz71 » 11. Feb 2010, 13:30

Richtig, hier handelt es sich nur um REG_SZ Werte!

Ersetzen von hart eingetragenen EmpirumServern (unterschiedliche Namen) durch die %EmpirumServer% Variable!

Walter_Schulz
Beiträge: 876
Registriert: 17. Dez 2004, 12:29
Kontaktdaten:

Beitrag von Walter_Schulz » 11. Feb 2010, 13:59

Sind die Servernamen bekannt?

Ciao!
Walter Schulz

Benutzeravatar
martinz71
Beiträge: 10
Registriert: 25. Jul 2008, 18:51
Kontaktdaten:

Beitrag von martinz71 » 11. Feb 2010, 14:10

Ja, die Servernamen sind bekannt (ca 90 Server) !

Grüße Martin

Walter_Schulz
Beiträge: 876
Registriert: 17. Dez 2004, 12:29
Kontaktdaten:

Beitrag von Walter_Schulz » 11. Feb 2010, 15:14

Das ist doch noch uebersichtlich!
Also Liste erstellen und dann Paste+Copy ...

Alternative: Tools in Richtung SED, awk und Konsorten, die mit regulaeren Ausdruecken arbeiten koennen.

Ciao!
Walter Schulz

Benutzeravatar
MGrundl
Beiträge: 627
Registriert: 09. Mai 2008, 17:18
Wohnort: Wien
Kontaktdaten:

Beitrag von MGrundl » 11. Feb 2010, 15:40

Nur kurz zum Verständnis:
Was möchtest Du mit dieser HKLM_EMPIRUM.ini machen?
Warum bearbeitest Du die mit einer Setup.inf?

lg,
Manfred

Benutzeravatar
Theo_Gottwald
Beiträge: 321
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim
Kontaktdaten:

Beitrag von Theo_Gottwald » 11. Feb 2010, 18:19

Mit dem Package Robot ist das ein 4 Zeiler:

Code: Alles auswählen

VAR\$$PAT=C:\Myfile.reg
VAR\$$OLD=\\\\server1-9999\\Configurator$
VAR\$$NEW=\\\\%EmpirumServer%\\Configurator$
RIF\$$PAT|$$OLD|$$NEW

Walter_Schulz
Beiträge: 876
Registriert: 17. Dez 2004, 12:29
Kontaktdaten:

Beitrag von Walter_Schulz » 11. Feb 2010, 20:24

Leider muss ich bezweifeln, dass damit die Aufgabe erledigt ist. Der String "Server1-9999" ist nur ein Platzhalter fuer etwa 90 Server. Bitte um Korrektur, falls ich mich irre, aber der Code scheint nur den String "\\\\Server1-9999\\Configurator$" gegen "\\\\%Empirumserver%\\Configurator$" zu tauschen.

Ciao!
Walter Schulz

Benutzeravatar
Theo_Gottwald
Beiträge: 321
Registriert: 03. Okt 2009, 08:57
Wohnort: Herrenstr.11 * 76706 Dettenheim
Kontaktdaten:

Beitrag von Theo_Gottwald » 11. Feb 2010, 20:40

Völlig richtig.

Also nehmen wir an, die 90 zu ersetzenden Strings liegen in einer Textdatei vor. Die Textdatei nennen wir mal "Server.txt".

Format:

Code: Alles auswählen

String1?String2
String1?String2
String1?String2
String1?String2
... 

So und damit hätten wir einen zehn-Zeiler.

Code: Alles auswählen

VAR\$$SET=c:\Server.txt
VAR\$$PAT=C:\Myfile.reg
FEL\$$SET|DoIt|$$TXT
MBX\Bin fertig!
END\

:DoIt
SBD\|$$TXT|?|1
VAR\$$OLD=$v1$
VAR\$$NEW=$v2$
RIF\$$PAT|$$OLD|$$NEW
@
Als Hinweis zum Verständnis: FEL\ (For-Each-Line) Liest nacheinander jede Zeile der "Server.txt" und ruft damit das Unterprogramm "DoIt" auf.
Dort zerlegt SBD\ (String-between Delimiter) den $$TXT in zwei Teile abgetrennt vom "?" als Delimiter. Diese weisen wir einfach den Variablen $$OLD und $$NEW zu. Evtl. könnte man hier auch noch trimmen mit "VBT\" (Variable Both Trim).

Man könnte das nun auch auf eine ganze Anzahl Files anwenden, in dem man einfach auf die gleiche Weise noch eine übergeordnete Instanz mit einem FEF\ (For-Each-File) davor macht. Kommt das so hin?

PS: Hab das jetzt einfach mal so rausgeschrieben ohne dass ich es testlaufen lassen kann. Im Prinzip gehts aber so.

Antworten

Zurück zu „Package Robot“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast