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

gelöst Inhalt einer XML Datei Script ändern

Mitglied: chris27584

chris27584 (Level 1) - Jetzt verbinden

12.09.2017 um 12:51 Uhr, 1082 Aufrufe, 4 Kommentare

Hallo zusammen,

in folgendem Script

.............................................................................................
<?xml version="1.0"?>
-<SkClientConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema;>"
<LastServerIndex>1</LastServerIndex>
<LastUser>11111</LastUser>
<LastWorkplace>2358</LastWorkplace>
-<SerializableFont>
<FontValue>Microsoft Sans Serif; 8,25pt</FontValue>
</SerializableFont>
<LoginMode>Manual</LoginMode>
-<Servers>
<string>192.168.101.111:520;192.168.101.120</string>
<string>192.168.101.115:520;192.168.101.119</string>
</Servers>
<CtiSocketPort>0</CtiSocketPort>
<LOGPath>LOG</LOGPath>
<Language>de</Language>
<LogoutColor>White</LogoutColor>
<MulticastGroup/>
<MulticastPort>0</MulticastPort>
<ReflectorAdr/>
<ReflectorPort>0</ReflectorPort>
<CallDiversionLoginPause>-1</CallDiversionLoginPause>
<CallDiversionWait>0</CallDiversionWait>
<Hint/>
<AllowLoginWithoutWorkplace>true</AllowLoginWithoutWorkplace>
<CloseWait>0</CloseWait>
<CloseText/>
<LocalHttpServerPort>4444</LocalHttpServerPort>
<Title/>
</SkClientConfig>
.............................................................................................

sollen beide <String>-Werte geändert werden.

Eine Anleitung zum Ändern eines Wertes habe ich bereits gefunden,

.............................................................................................
Const ForReading = 1
Const AsASCII = 0


strFixedValue1 = "10.100.82.3:520;10.100.82.5"
strFixedValue2 = "10.100.82.9:520;10.100.82.11"

If WScript.Arguments.Count > 0 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")

strSrcDir = objFSO.GetAbsolutePathName(WScript.Arguments(0))
If WScript.Arguments.Count > 1 Then strFixedValue = WScript.Arguments(1)

If objFSO.FolderExists(strSrcDir) Then
Set objRegExp = New RegExp
objRegExp.Global = False
objRegExp.IgnoreCase = True

For Each objFile In objFSO.GetFolder(strSrcDir).Files
If LCase(objFSO.GetExtensionName(objFile.Name)) = "xml" Then
'Eingabedatei lesen
Set objInFile = objFile.OpenAsTextStream(ForReading, AsASCII)
strContent = objInFile.ReadAll
objInFile.Close


'Den Wert zwischen <servers></servers>
'durch einen fixen Wert ersetzen

objRegExp.Pattern = "(<string>).*(</string>)"
strContent = objRegExp.Replace(strContent, "$1" & strFixedValue1 & "$2")
objRegExp.Pattern = "(<string>).*(</string>)"
strContent = objRegExp.Replace(strContent, "$1" & strFixedValue2 & "$2")

'Ausgabedaei schreiben
Set objOutFile = objFSO.CreateTextFile(objFSO.BuildPath(strSrcDir, objFSO.GetBaseName(objFile.Name) & "_Neu." & objFSO.GetExtensionName(objFile.Name)), True)
objOutFile.Write strContent
objOutFile.Close
End If
Next
End If
End If
.............................................................................................

aber wie kann ich beide gleichzeitig ändern?
Denn mein hier enthaltener bereits gedachter Ansatz klappt nicht.

Hat hier jemand einen schnellen Tip?

Vielen Dank im voraus

Chris27584

Mitglied: MrCount
12.09.2017 um 14:10 Uhr
Servus,

also die einfachste/schnellste Methode wird vermutlich sein, die beiden Zeilen zu löschen und neu einzufügen.
Bitte warten ..
Mitglied: em-pie
12.09.2017 um 14:58 Uhr
Moin,

bei einer Datei gebe ich MrCount recht.
Ansonsten kann vbs anscheinend gut mit XML arbeiten, da MS ein Objekt/ eine Klasse bereitstellt.
Schaue hier mal unter Punkt 4, scheint eine sehr simple Thematik zu sein (habe es selbst noch nicht getestet/ verwenden müssen):
https://technet.microsoft.com/de-de/library/2008.02.heyscriptingguy.aspx ...

Gruß
em-pie
Bitte warten ..
Mitglied: 133883
LÖSUNG 12.09.2017, aktualisiert um 22:15 Uhr
Moin,
wie @em-pie schon schreibt ist die oberste Regel bei XML Dateien diese nur über einen Parser regelkonform zu verändern und nicht mit String-Replace zu arbeiten.
Also nutze die dafür vorgesehenen Objekte:
01.
set xml = CreateObject("MSXML2.Domdocument.6.0")
02.
xml.Load "D:\demo.xml"
03.
set nodes = xml.SelectNodes("/SkClientConfig/Servers/string")
04.
nodes(0).text = "erster Wert"
05.
nodes(1).text = "zweiter Wert"
06.
xml.Save "D:\demo.xml"
Gruß @133883
Bitte warten ..
Mitglied: chris27584
14.09.2017 um 13:19 Uhr
Moin,

Zuerst mal vielen Dank an alle für die fixen Antworten.

Habe mich für @133883's Lösung entschieden, genau das was ich suchte, auch für kommende Aufgaben ;)


Gruß Chris
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Script zum XML Datei Umschreiben
Frage von cberndtBatch & Shell12 Kommentare

Guten Tag. Ich habe folgendes Problem. Ich habe eine XML Datei mit meinen Gutscheincodes sowie weiter Daten aus meiner ...

Batch & Shell
XML-Inhalt austauschen
gelöst Frage von noscriptBatch & Shell10 Kommentare

Hallo zusammen Nachdem ich nun das komplette Internet gefühlt zwei Mal gelesen, aber nicht kapiert habe, versuch ichs nun ...

XML

Inhalt einer .xml Datei ändern mit Batch File

Frage von JJSchumacherXML10 Kommentare

Hallo Zusammen, Ich habe eine kleine Datei activeSite.xml mit folgendem Inhalt: Diese würde ich gerne mit einem .bat (Batch) ...

Batch & Shell

XML-Inhalt austauschen V2

gelöst Frage von noscriptBatch & Shell2 Kommentare

hi mit folgendem Script bearbeite ich xml's welche in einem ordner abgelegt sind. nun möchte ich das script so ...

Neue Wissensbeiträge
Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 13 StundenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 13 StundenExchange Server1 Kommentar

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 15 StundenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 3 TagenVoice over IP7 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...

Heiß diskutierte Inhalte
Notebook & Zubehör
Hardwareberatung: Business Notebook
Frage von waellerNotebook & Zubehör14 Kommentare

Hallo zusammen, da wir bislang nur MacBooks im Einsatz haben - nun aber auf Windows umsteigen werden - bräuchte ...

Hardware
Ncomputing N600 oder auch 600W Privat nutzen Kostenlos oder kostengünstig
gelöst Frage von PlerTanixHardware14 Kommentare

Hallo liebe Forum User, Ich habe da eine Frage. Ich bin Azubi im dritten Lehrjahr und bei uns in ...

Windows 10
Upgrade Windows 10 1903 und Office 2010 Problem mit Userzertifikaten
gelöst Frage von Looser27Windows 1012 Kommentare

Guten Morgen, ich habe bei uns ein Phänomen in o.g. Kombination festgestellt, welches nach dem Inplace-Upgrade auf 1903 auftritt. ...

Router & Routing
Wireshark richtig anwenden bei Netzwerkkamera
gelöst Frage von blindesHuhnRouter & Routing11 Kommentare

Guten Sonntag, ich habe ein Problem und ich weis nicht wie man das Werkzeug verwendet um es zu lösen. ...