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 BATCH um Dateien zu löschen die ein bestimmtest Wort enthalten

Mitglied: joeyschweiz

joeyschweiz (Level 1) - Jetzt verbinden

08.04.2011, aktualisiert 11.04.2011, 4483 Aufrufe, 7 Kommentare

und immer wieder hier im Forum wenn es um komische Dinge geht

Folgendes Problem.

Es werden XML Dateien per Batch von einem Portal abgerufen.

Die Verarbeitung ist soweit ok nur ab und zu erhalten wir in einem File einen ERROR Code...
wenn diese Daten aufläuft crashed die Schnittstelle.

Daher möchte ich die XML Dateien durchsuchen.


Folgender Gedanke:

Wenn "ERROR code=" vorhanden ist soll die Datei direkt gelöscht oder in ein Ordner "Error" verschoben werden.



Der Ansatz::
01.
@echo off  
02.
rem StartPfad C:\transfer 
03.
set "StartPfad=C:\transfer"  
04.
 
05.
 
06.
set "DateiMaske=*.xml"  
07.
set "SuchString= ## ERROR ## "  
08.
 
09.
 
10.
for /f "delims=" %%i in ('findstr /s /m /c:"%SuchString%" "%StartPfad%\%DateiMaske%"') do del "%%i"
(ja ich weiss der code ist auch schon hier aus dem Forum )




Kann mir jemand von den "Göttern" helfen?


Danke und super Wochenende.

[Edit Biber] Codetags. [/Edit]
Mitglied: Biber
08.04.2011 um 17:17 Uhr
Moin joeyschweiz,

keine Ahnung, wann hier die "Götter" vorbeikommen - bis es soweit ist, versuch ich dich mal hinzuhalten..

Also - in Prinzip würde deine Skizze doch genau das tun, was sie soll....

Handwerklich zu ändern wäre (bei Langeweile oder Hang zum Perfektionismus) bestenfalls
  • wahlweise die erste Zeile erweitern um ein " & Setlocal", damit deine Privat-Batch-Variablen nicht mit anderen Umgebungsvariablen kollidieren können
  • oder aber in diesem Fall auf Variablen ganz verzichten. Alle Variablen werden nur ein einziges Mal benötigt und der Variablenname ist ja fast länger als der Inhalt.

Soweit die guten Nachrichten.
Es bleibt aber die die Frage, ob der Schnipsel denn wirklich das tun sollte, was du ihm da vorgibst...

Irgendein Prozess erzeugt *.XML-Dateien - einige davon zwar mit richtigem Namen, aber mit unverarbeitbarem Inhalt, wenn ich dich richtig lese.

Dennoch führen ja diese inhaltlich falschen *.XMLs zu Fehler, weil sie angefasst werden.
Demnach werden sie ja von Namen her erwartet.... bist du sicher, dass ein Löschen/Verschieben keine anderen Fehler produziert?

Ausserdem - ich würde niemalsnich Dateien blind löschen, nur weil sie ein Wort/eine Zeile enthalten.
Vielleicht ist ja genau dieses Wort in einer Kommentarzeile oder als Prosa in einem Hilfetext oder oder oder in einer eigentlich verarbeitbaren *.xml.

--> ist der Plan wirklich ausgereift?

Und noch die dumme Frage von mir:
wieso produzierte Fehler nachbehandeln mit halbmanuellen Folgeprozessen?
Wieso nicht mit Prio 1 die Fehlererzeugung abstellen? Das muss doch etwas sein, was unter Schwestern aus "Bug" bewertet werden muss.

Es sei denn, ihr könnt die Vorher-Appz nicht richtig bedienen, dann investiere in Schulungsmassnahmen.

Grüße
Biber

P.S.
Zitat von joeyschweiz:
Die Verarbeitung ist soweit ok nur ab und zu .....
Wegen dieser IT-typischen Formulierungen liebe ich meinen Job...
Erzähl doch mal beim nächsten nachbarschaftlichen Grillen "Meine Schwiegermutti ist soweit ok nur ab und zu...".
Also wenn deine Frau danebensitzt natürlich.
Bitte warten ..
Mitglied: Skyemugen
08.04.2011 um 17:32 Uhr
Aloha,

abgesehen von Bibers berechtigtem Einwand, möchte ich dir mitteilen, dass du keine Hilfe unbedingt dafür benötigst ...

Du hast:
set "SuchString= ## ERROR ## "
du möchtest statt
 ## ERROR ## 
lieber
ERROR code=
haben ...

Für das Verschieben (sofern du dir Bibers Post durchgelesen hast und es immer noch willst) empfehle ich dir den Befehl move, den du für das del ersetzt und noch deinen Wunschpfad als Letztes hinzufügst ...

greetz André
Bitte warten ..
Mitglied: 99045
08.04.2011 um 17:33 Uhr
<OT>
Zitat von joeyschweiz:
wenn diese Daten aufkäuft crashed die Schnittstelle.

Was mich interessieren würde: Wie käufen denn Daten auf, wie macht man das?

Gruß
</OT>
Bitte warten ..
Mitglied: joeyschweiz
11.04.2011 um 09:48 Uhr
Danke soweit.


WIe ich schon geschrieben hatte, verschieben ist sicher sinnvoller.

Datei finden klappt gut. Mit "del" ist diese dann auch gelöscht. Nun möchte ich aber nicht löschen sondern verschieben.



for /f "delims=" %%i in ('findstr /s /m /c:"%SuchString%" "%StartPfad%\%DateiMaske%"') do move c:\transfer\fehler "%%i"



Hier habe ich nun das Problem. Die gefundene Datei soll nach "c:\transfer\fehler" verschoben werden.
Ich geh davon aus, dass zwischen move und Pfad ein Bezug zur Datei fehlt. Aber welcher?




Hintergrund:

Die XML mit dem "ERROR code=" werden nur bei Verbindungsfehlern generiert. Derzeit kommt das ca. 1 mal im Monat vor. Da ich auf Seiten des Servers nichts ändern kann, muss ich mit dem Arbeiten was ich von dort bekomme. Problem, die XML Dateien mit Fehlermeldung unterscheiden sich im Aufbau gegenüber den "richtigen" Daten die verarbeitet werden.

Generell sind somit die Fehlermeldungen nicht wichtig, da diese zusätzlich noch in einer LOG Datei protokolliert werden. Verschieben ist aber sicherlich die bessere Wahl.




Danke nochmals.


PS: käuft heist der Fehlerteufel von läuft, in der Regel sitzt der links auf der Schulter.


Grüäsli
Bitte warten ..
Mitglied: Biber
11.04.2011 um 10:24 Uhr
Moin joeyschweizer,

Zitat von joeyschweiz:
for /f "delims=" %%i in ('findstr /s /m /c:"%SuchString%" "%StartPfad%\%DateiMaske%"') do move c:\transfer\fehler "%%i"

Hier habe ich nun das Problem. Die gefundene Datei soll nach "c:\transfer\fehler" verschoben werden.
Ich geh davon aus, dass zwischen move und Pfad ein Bezug zur Datei fehlt. Aber welcher?

Schau doch noch mal am CMD-Prompt in die Ausgabe von "move /?"

Eigentlich sollte zuerst das zu verschiebende genannt werden (z. B. das "%%i"), danach die Zieldatei bzw das Ziel-Verzeichnis mit abschliessendem Backslash.

Grüße
Biber
Bitte warten ..
Mitglied: Skyemugen
11.04.2011 um 11:16 Uhr
Aloha ...

empfehle ich dir den Befehl move, den du für das del ersetzt und noch deinen Wunschpfad als Letztes hinzufügst ...

war doch eigentlich unmissverständlich oder?

Entspricht es nicht eigentlich fundamentaler Logik, dass man etwas von A nach B bzw. den Gegenstand A nach B verschiebt oder auch mal kopiert und nicht umgekehrt?

greetz André
Bitte warten ..
Mitglied: joeyschweiz
11.04.2011 um 12:43 Uhr
Danke habs ... sollte wohl mal länger schlafen am Montag morgen.


for /f "delims=" %%i in ('findstr /s /m /c:"%SuchString%" "%StartPfad%\%DateiMaske%"') do move "%%i" c:\transfer\fehler\





Super Woche wünsche ich.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch: Wenn Buchstaben im Wort enthalten dann......

gelöst Frage von Luckyman7471Batch & Shell7 Kommentare

Hallo Leute, Ich würde gerne folgendes realisieren: Wenn im lokalen Computernamen die Buchstaben "fa" enthalten sind dann soll ein ...

Batch & Shell

Batch-Datei um Dateien mit bestimmten Dateinamen zu löschen

gelöst Frage von SwisterBatch & Shell4 Kommentare

Hallo, Ich habe mehrere Tausend Bilder die folgenden Namen haben "m20130310040500500". Der Name setzt sich wie so zusammen "m" ...

Batch & Shell

Bestimmte Bilder mit Batch löschen

gelöst Frage von hanni007Batch & Shell2 Kommentare

Hallo, seit einigen Tagen bin ich schon als Nichtnutzer in eurem Forum unterwegs. Nun habe ich mich aber entschlossen, ...

Batch & Shell

Batch bei bestimmten Wörtern jeweilige Zeile entfernen

gelöst Frage von Beginner01Batch & Shell19 Kommentare

Hallo an Alle, ich bin mal wieder einer derjenigen, die einfach keine Ahnung haben und Alles haben wollen ;-) ...

Neue Wissensbeiträge
Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 StundeSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 StundeMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 StundeHardware2 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

MikroTik RouterOS

Mikrotik Advisory: Vulnerability exploiting the Winbox port

Information von colinardo vor 1 StundeMikroTik RouterOS

Brand aktuell: Eine Schwachstelle im Winbox-Port bei Mikrotik Routern erlaubt das Auslesen der User-Datenbank der Router. Patch ist aktuell ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux22 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server13 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL13 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...