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 Bestimmte Zeilen aus xml Datein löschen

Mitglied: sommerzeit

sommerzeit (Level 1) - Jetzt verbinden

05.04.2008, aktualisiert 06.04.2008, 8802 Aufrufe, 4 Kommentare

Hallo,
ich habe auf C:\Daten ca. 6000 xml Dateien und ich möchte bestimmte Zeilen per batch davon löschen.
der Script soll nach "28270" suchen, diese Zeile, die Zeile davor und danach löschen=(3 Zeilen)
dasselbe für "25222"

kann bitte jemand helfen?

hier ein Ausschnitt der xml Datei.


<XRefElement ID=" PublicationID="1783" ObjectType="X-Ref_Zusatzinfo">
<UniversalReference ID="[CDATA[<MODLINK REFID="28270" TYPE="Zusatzinfo">]]></FormattedText>
</XRefElement>
<XRefElement ID="PublicationID="1783" ObjectType="X-Ref_Zubehoer">
<UniversalReference [CDATA[<MODLINK REFID="29884" TYPE="Zubehor">]]></FormattedText>
</XRefElement>
<XRefElement ID="PublicationID="1803" ObjectType="X-Ref_Zubehoer">
<UniversalReference [CDATA[<MODLINK REFID="17479" TYPE="Zubehor">]]></FormattedText>
</XRefElement>
<XRefElement ID="PublicationID="1783" ObjectType="X-Ref_Zusatzinfo">
<UniversalReference [CDATA[<MODLINK REFID="25222" TYPE="Zusatzinfo">]]></FormattedText>
</XRefElement>
Mitglied: bastla
05.04.2008 um 21:54 Uhr
Hallo sommerzeit und willkommen im Forum!

Wenn's auch VBScript sein darf, dann etwa so:
01.
'RemoveLines.vbs
02.
Criteria = Split(Trim("28270 25222"))
03.
Bak = ".bak"
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject")
06.
If WScript.Arguments.Count < 1 Then
07.
	WScript.Echo "Keine Quelldatei angegeben!"
08.
	WScript.Quit 1
09.
End If
10.
 
11.
FileOut = WScript.Arguments(0)
12.
If Not fso.FileExists(FileOut) Then
13.
	WScript.Echo "Angegebene Quelldatei " & FileOut & " nicht gefunden!"
14.
	WScript.Quit 2
15.
End If
16.
 
17.
FileIn = FileOut & Bak
18.
If fso.FileExists(FileIn) Then fso.DeleteFile FileIn
19.
fso.MoveFile FileOut, FileIn
20.
 
21.
XMLin = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(FileIn).ReadAll, vbCrLF)
22.
 
23.
U = UBound(XMLin)
24.
i = 1
25.
Do Until i > U
26.
	Remove = False
27.
	For Each Crit In Criteria
28.
		If InStr(XMLin(i), Crit) Then Remove = True: Exit For
29.
	Next
30.
	If Not Remove Then 
31.
		XMLout = XMLout & vbCrLF & XMLIn(i - 1)
32.
	Else
33.
		i = i + 2
34.
	End If
35.
	i = i + 1
36.
Loop
37.
If i = U + 1 Then XMLout = XMLout & vbCrLF & XMLIn(i - 1)
38.
 
39.
fso.OpenTextFile(FileOut, 2, True).Write Mid(XMLout, 3)
Zur Verwendung: Speichere das Script zB unter "C:\Scripts\RemoveLines.vbs" - falls Du mit dem Windows-Editor arbeitest, achte bitte darauf, dass Du beim Speichern den Dateinamen unter Anführungszeichen setzt, da ansonsten als ".txt" gespeichert wird.

Falls neben "28270" und "25222" noch weitere Nummern auszuscheiden wären, kannst Du diese (durch Leerzeichen getrennt) in der Zeile "Criteria = ..." innerhalb der Anführungszeichen hinzufügen.

Starten könntest Du zwar auch, indem Du die XML-Datei auf die Script-Datei ziehst (Drag & Drop), allerdings wird für Dich der Weg über die Kommandozeile mit
01.
cscript //nologo "C:\Scripts\RemoveLines.vbs" "C:\Daten\Eine XML-Datei.xml"
sinnvoller sein, da Du so in einer Schleife alle Deine Dateien bearbeiten lassen kannst.

Es wird zunächst eine Sicherungskopie (durch Hinzufügen der Endung ".bak") im selben Ordner erstellt und danach die gekürzte Version unter dem Namen der Originaldatei gespeichert.

Die erwähnte Schleife (direkt an der Kommandozeile eingegeben, oder mit %%i geschrieben als Batch) könnte etwa so aussehen:
01.
for /f %i in ('dir /b /a-d "C:\Daten\*.xml"') do @echo Bearbeite %i & @cscript //nologo "C:\Scripts\RemoveLines.vbs" "%i"
Grüße
bastla
Bitte warten ..
Mitglied: sommerzeit
06.04.2008 um 11:12 Uhr
Hallo Bastla,

vielen vielen Dank, großartig, der Script für eine Datei funktionierte auf Anhieb.


aber um alle Dateien zu bearbeiten mit diesem Befehl

for /f %i in ('dir /b /a-d "C:\Daten\*.xml"') do @echo Bearbeite %i & @cscript nologo "C:\Scripts\RemoveLines.vbs" "%i"

bekomme ich diese Meldung und wird nicht verarbeitet.

muss ich noch etwas verändern? Quelle in vbs?

vielen Dank nochmal


Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\MD-8K246D>for /f %i in ('dir /b /a
-d "C:\Daten\*.xml"') do @echo Bearbeite %i & @cscript
nologo "C:\Scripts\Remo
veLines.vbs" "%i"
Bearbeite 17482_Module.xml
Angegebene Quelldatei 17482_Module.xml nicht gefunden!
Bearbeite 17483_Module.xml
Angegebene Quelldatei 17483_Module.xml nicht gefunden!
Bearbeite 17484_Module.xml
Angegebene Quelldatei 17484_Module.xml nicht gefunden!

C:\Dokumente und Einstellungen\MD-8K246D>
Bitte warten ..
Mitglied: bastla
06.04.2008 um 11:20 Uhr
Hallo sommerzeit!

Sorry - hatte zuerst eine andere Batchschleife verwendet und dann nicht mehr aus einem anderen Ordner heraus getestet.

So sollte es klappen:
01.
for /f %i in ('dir /b /a-d "C:\Daten\*.xml"') do @echo Bearbeite %i & @cscript //nologo "C:\Scripts\RemoveLines.vbs" "C:\Daten\%i"
Grüße
bastla
Bitte warten ..
Mitglied: sommerzeit
06.04.2008 um 12:03 Uhr
Halleluja, Hut ab,
funktioniert wunderbar, das ist genau was ich wollte.

Vielen vielen Dank.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Stapelverarbeitung XML-Datein
Frage von 132015Batch & Shell1 Kommentar

Hallo, ich möchte gerne mit eine Batch verschieden XML-Dateien an einem bestimmten TAG verarbeiten (<INVOICENUM>). Diese soll auf führende ...

XML
XML-Datein per Script editieren
gelöst Frage von Jensxx1975XML41 Kommentare

Hallo in die Runde! Ich benötige ein Script um eine XML-Datei zu editieren. Der Wert einer Variablen müsste ausgelesen ...

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 ...

Mac OS X
Safari öffnet bestimmt Seite nicht
Frage von tomi93Mac OS X2 Kommentare

Hallo , ich habe an einem iMac bei uns im Unternehmen das Problem das Safari dort eine bestimmte Seite ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 15 StundeniOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 3 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...

Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
Frage von frosch2Windows Netzwerk13 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Netzwerkmanagement
Ticketsystem für eine Kommune gesucht
gelöst Frage von akovisNetzwerkmanagement11 Kommentare

Ich suche aktuell ein Ticketsystem für eine Kleinstadt von 13000 Einwaohnern. Das System soll alle Anfragen aus verschiedenen Kanälen ...