Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch oder VB - Wort an bestimmter Stelle einer Zeile einfügen

Mitglied: SavMaz

SavMaz (Level 1) - Jetzt verbinden

14.04.2010 um 15:29 Uhr, 4769 Aufrufe, 3 Kommentare

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
Mitglied: bastla
14.04.2010 um 15:46 Uhr
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"):
01.
Set fso = CreateObject("Scripting.FileSystemObject")
02.
D = WScript.Arguments(0)
03.
T = fso.OpenTextFile(D).ReadAll
04.

05.
Set rE = New RegExp
06.
re.Global = True
07.
re.Pattern = "(-xmx\d*)"
08.

09.
T = rE.Replace(T, "$1 -xss256")
10.
fso.CreateTextFile(D).Write T
Aufzurufen ist das Script mit der Config-Datei als Parameter, also aus einem Batch etwa:
cscript //nologo Add_xss.vbs D:\Config.ini
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):
01.
@echo off & setlocal
02.
set "Datei=D:\Config.ini"
03.
set "Such=(-xmx\d*)"
04.
set "Ersetz=$1 -xss256"
05.

06.
set A=%temp%\Add_xss.vbs
07.
> %A% echo Set fso=CreateObject("Scripting.FileSystemObject"):D=WScript.Arguments(0):T=fso.OpenTextFile(D).ReadAll
08.
>>%A% echo Set rE=New RegExp:re.Global=True:re.Pattern="%Such%":T=rE.Replace(T,"%Ersetz%"):fso.CreateTextFile(D).Write T
09.

10.
cscript //nologo %A% "%Datei%"
Grüße
bastla
Bitte warten ..
Mitglied: SavMaz
15.04.2010 um 08:27 Uhr
Hallo bastla,

vielen dank für die rasche Hilfe - leider funktioniert keines der beiden skripts, die Datei wird zwar bearbeitet (NTFS Änderungsdatum), jedoch bleibt sie komplett unverändert!?

Und zwecks Verständniss würde mich interessieren, für was das $1 steht? Den Rest kann ich zwar halbwegs lesen, jedoch kann ich vb viel zu wenig um den "Fehler" zu finden, vielleicht kannst du nochmals darüber schauen...

Edit: Habe doch den "Fehler" entdeckt, der liegt aber bei mir bzw. einer nicht richtigen Angabe meinerseits - in der original Datei nennt sich der Parameter "-xmx128M" also doch nicht nur ziffern - bin gerade am experementieren mit den Patern-Eigenschaften, wenn ich es selbst schaffe, poste ich das Erebnis, falls nicht einen Hilfeschrei :D

Danke,
lg
Andi
Bitte warten ..
Mitglied: SavMaz
15.04.2010 um 08:52 Uhr
Hallo nochmal,

so, habe mir das Skript jetzt doch noc zurecht basteln können - code anbei, falls das nochjemand braucht. Aufruf aus Batch mit:

cscript InserWord.vbs ConfigFilename.txt Such-Pattern(lt. Link von bastla) Einzufügender Text

also hier am konkreten Beispiel
cscript InserWord.vbs Config.cfg -xmx\d*M\b -xss256M


InsertWord.vbs
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
 
03.
File = WScript.Arguments(0)
04.
SearchString = WScript.Arguments(1)
05.
AddString = WScript.Arguments(2)
06.
 
07.
SearchString="(" & SearchString & ")"
08.
 
09.
T = fso.OpenTextFile(File).ReadAll 
10.
 
11.
Set rE = New RegExp 
12.
re.Global = True
13.
re.IgnoreCase = True
14.
re.Pattern = SearchString
15.
 
16.
T = rE.Replace(T, "$1 "&AddString) 
17.
fso.CreateTextFile(File).Write T
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Textdatei (.txt) Wort für Wort auslesen per batch (Spaltenweise)

Frage von pdiddoBatch & Shell1 Kommentar

Hi, ich habe eine Textdatei (.txt). Diese hat mehrere Zeilen. Ich möchte diese gerne Spalte für Spalte auslesen, sodass ...

VB for Applications

VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten

gelöst Frage von deutsch73VB for Applications2 Kommentare

Hallo, ich möchte mittels vb script in einem text ein wort suchen und wenn dieses gefunden wurde die nächsten ...

Microsoft Office

Word bestimmt Sprache selbst

gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

VB for Applications

VB Skript für mehrere Batch Befehle

gelöst Frage von freshman2017VB for Applications37 Kommentare

Hallo, zum Glück konntet Ihr mir schon sehr helfen, habe nun noch eine weitere Frage. Ich nutze derzeit ein ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 1 TagWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 3 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 4 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 6 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Lancom und VLANs
Frage von TimmheLAN, WAN, Wireless11 Kommentare

Hallo an alle ich habe momentan ein sehr merkwürdiges problem bei dem ich nicht mehr weiter komme und hoffe ...

Virtualisierung
Unix System virtualisieren
Frage von BananenmeisterVirtualisierung10 Kommentare

Hallo Zusammen, Ich möchte gerne eine Virtualisierungs-Software auf meinem kleinen ML Server installieren um einige Unix Systeme zu virtualisieren. ...

Notebook & Zubehör
Hardware defekt ?
Frage von mausemuckelNotebook & Zubehör9 Kommentare

Hallo und ein schönes Osterfest an alle. Ich benötige mal euer Schwarm wissen. Ich habe hier ein Notebook Lenovo ...

Peripheriegeräte
Empfehlung für Home-USV (ca. 450VA 270W) Irgendwelche Osterpreisaktionen bekannt?
Frage von Server-NutzerPeripheriegeräte8 Kommentare

Hallo und schöne Ostern. Meine private Heim-USV Yunto Q450 (ca. 450VA 270W) hat sich nach vielen Jahren ohne Probleme ...