BATCH um Dateien zu löschen die ein bestimmtest Wort enthalten
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::
(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]
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::
@echo off
rem StartPfad C:\transfer
set "StartPfad=C:\transfer"
set "DateiMaske=*.xml"
set "SuchString= ## ERROR ## "
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]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164238
Url: https://administrator.de/contentid/164238
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
7 Kommentare
Neuester Kommentar
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
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.
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.
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.
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.
Aloha,
abgesehen von Bibers berechtigtem Einwand, möchte ich dir mitteilen, dass du keine Hilfe unbedingt dafür benötigst ...
Du hast:
du möchtest statt
lieber
haben ...
Für das Verschieben (sofern du dir Bibers Post durchgelesen hast und es immer noch willst) empfehle ich dir den Befehl
greetz André
abgesehen von Bibers berechtigtem Einwand, möchte ich dir mitteilen, dass du keine Hilfe unbedingt dafür benötigst ...
Du hast:
set "SuchString= ## ERROR ## "
## ERROR ##
ERROR code=
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é
<OT>
Was mich interessieren würde: Wie käufen denn Daten auf, wie macht man das?
Gruß
</OT>
Was mich interessieren würde: Wie käufen denn Daten auf, wie macht man das?
Gruß
</OT>
Moin joeyschweizer,
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
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?
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
Aloha ...
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é
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é