Variablen Text-String ersetzen

Moderator: MVogt

Post Reply
User avatar
martinz71
Posts: 12
Joined: 25. Jul 2008, 18:51
Contact:

Variablen Text-String ersetzen

Post by 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
Posts: 876
Joined: 17. Dec 2004, 12:29
Contact:

Post by 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

User avatar
martinz71
Posts: 12
Joined: 25. Jul 2008, 18:51
Contact:

Post by 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
Posts: 876
Joined: 17. Dec 2004, 12:29
Contact:

Post by Walter_Schulz » 11. Feb 2010, 13:59

Sind die Servernamen bekannt?

Ciao!
Walter Schulz

User avatar
martinz71
Posts: 12
Joined: 25. Jul 2008, 18:51
Contact:

Post by martinz71 » 11. Feb 2010, 14:10

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

Grüße Martin

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

Post by 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

User avatar
MGrundl
Posts: 627
Joined: 09. May 2008, 17:18
Location: Wien
Contact:

Post by 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

User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Post by Theo_Gottwald » 11. Feb 2010, 18:19

Mit dem Package Robot ist das ein 4 Zeiler:

Code: Select all

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

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

Post by 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

User avatar
Theo_Gottwald
Posts: 367
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Post by 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: Select all

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

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

Code: Select all

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.

Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: Google [Bot] and 5 guests