Batch oder VB - Wort an bestimmter Stelle einer Zeile einfügen
Hallo,
nach langer Zeit stehe ich mit meinem Skript Wissen mal wieder an und hoffe hier auf Hilfe:
Ich muss in verschiedenen Config Files, die Java Startparameter enthalten, an bestimmten Stellen einen Parameter einfügen - und das natürlich per Batch oder VB ;)
die Config Datei sieht in etwa so aus:
%java% -xms256 -xmx512 -saplog -user:Username - Paramterxyz -Prefix:Name1
%java% -ParameterXXX -xms256 -xmx256 -saplog -user:Username -Prefix:Name2
%java% -xms256 -xmx1024 -saplog -ParamterZZZ -user:Username -Prefix:NameN
also alle zeilen etwas unterschiedlich. trotzdem soll nach jedem "-xmx[egalwelcherwert]" der Wert "-xss256" hinzugefügt werden. Leider schaffe ich es bisher nur, komplette Zeilen zu ersetzten, was hier ja nicht möglich ist. Auch mein gut funktionierendes "finadandreplace.vbs" kann ich hier nicht verwenden, da ja nach dem -xmx ein "beliebiger" Wert stehen kann. Ich suche also nach einer Lösung, welche vermutlich so aussehen müsste:
suche nach -xmx und ermittle da anzahl der folgenden Stellen bis zum nächsten BLANK
gehe dorthin und füge -xss256 ein.....
ich hoffe sehr auf eure Hilfe und bedanke mich schon mal im vorraus!
lg
Andi
nach langer Zeit stehe ich mit meinem Skript Wissen mal wieder an und hoffe hier auf Hilfe:
Ich muss in verschiedenen Config Files, die Java Startparameter enthalten, an bestimmten Stellen einen Parameter einfügen - und das natürlich per Batch oder VB ;)
die Config Datei sieht in etwa so aus:
%java% -xms256 -xmx512 -saplog -user:Username - Paramterxyz -Prefix:Name1
%java% -ParameterXXX -xms256 -xmx256 -saplog -user:Username -Prefix:Name2
%java% -xms256 -xmx1024 -saplog -ParamterZZZ -user:Username -Prefix:NameN
also alle zeilen etwas unterschiedlich. trotzdem soll nach jedem "-xmx[egalwelcherwert]" der Wert "-xss256" hinzugefügt werden. Leider schaffe ich es bisher nur, komplette Zeilen zu ersetzten, was hier ja nicht möglich ist. Auch mein gut funktionierendes "finadandreplace.vbs" kann ich hier nicht verwenden, da ja nach dem -xmx ein "beliebiger" Wert stehen kann. Ich suche also nach einer Lösung, welche vermutlich so aussehen müsste:
suche nach -xmx und ermittle da anzahl der folgenden Stellen bis zum nächsten BLANK
gehe dorthin und füge -xss256 ein.....
ich hoffe sehr auf eure Hilfe und bedanke mich schon mal im vorraus!
lg
Andi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140644
Url: https://administrator.de/forum/batch-oder-vb-wort-an-bestimmter-stelle-einer-zeile-einfuegen-140644.html
Ausgedruckt am: 21.04.2025 um 15:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo SavMaz!
Mit Batch wäre das (zumindest wenn der Parameter nicht zB auch gleich nach "%java%" oder am Ende der Zeile hinzugefügt werden kann) etwas mühsam - daher ein VBScript ("Add_xss.vbs"):
Aufzurufen ist das Script mit der Config-Datei als Parameter, also aus einem Batch etwa:
Die Änderung wird "in" der Datei (ohne Erstellung einer Sicherungskopie) durchgeführt. Vorausgesetzt habe ich noch, dass auf "xmx" nur Ziffern folgen (ansonsen wäre "\d" zB durch "\S" zu ersetzen - siehe zB hier).
Als Batch-Variante (nur eine Datei zu verwalten):
Grüße
bastla
Mit Batch wäre das (zumindest wenn der Parameter nicht zB auch gleich nach "%java%" oder am Ende der Zeile hinzugefügt werden kann) etwas mühsam - daher ein VBScript ("Add_xss.vbs"):
Set fso = CreateObject("Scripting.FileSystemObject")
D = WScript.Arguments(0)
T = fso.OpenTextFile(D).ReadAll
Set rE = New RegExp
re.Global = True
re.Pattern = "(-xmx\d*)"
T = rE.Replace(T, "$1 -xss256")
fso.CreateTextFile(D).Write T
cscript //nologo Add_xss.vbs D:\Config.ini
Als Batch-Variante (nur eine Datei zu verwalten):
@echo off & setlocal
set "Datei=D:\Config.ini"
set "Such=(-xmx\d*)"
set "Ersetz=$1 -xss256"
set A=%temp%\Add_xss.vbs
> %A% echo Set fso=CreateObject("Scripting.FileSystemObject"):D=WScript.Arguments(0):T=fso.OpenTextFile(D).ReadAll
>>%A% echo Set rE=New RegExp:re.Global=True:re.Pattern="%Such%":T=rE.Replace(T,"%Ersetz%"):fso.CreateTextFile(D).Write T
cscript //nologo %A% "%Datei%"
bastla