Verzeichnis auf neue Dateien prüfen und den Namen dieser in eine Text-Datei schreiben
Hallo zusammen,
ich suche eine Möglichkeit ein Verzeichnis in relativ kurzen Abständen auf neue Dateien zu untersuchen und wenn welche gefunden wurden, den Namen dieser Dateien in eine Text-Datei zu schreiben.
Bsp.; Im Ordner Bilder liegen unzählige Dateien mit unterschiedlichen Formten. Jetzt kommt die Datei bild0815.jpg hinzu.
Diese soll nun in eine Text Datei geschrieben werden, die ich dann weiter verarbeiten möchte.
Ich habe schon Versuche unternommen, dass ich den Inhalt des Ordners Bilder in eine Text Datei schreiben ließ, dann eine weitere Datei in der Ordner Bilder kopiert habe und wieder den Inhalt in eine Text. Danach habe ich den Inhalt der beiden Text Dateien vergleichen lassen. Hat aber alles nicht zu 100 % funktioniert.
Evtl. hat jemand eine Möglichkeit für mich.
Grüß
Michael
ich suche eine Möglichkeit ein Verzeichnis in relativ kurzen Abständen auf neue Dateien zu untersuchen und wenn welche gefunden wurden, den Namen dieser Dateien in eine Text-Datei zu schreiben.
Bsp.; Im Ordner Bilder liegen unzählige Dateien mit unterschiedlichen Formten. Jetzt kommt die Datei bild0815.jpg hinzu.
Diese soll nun in eine Text Datei geschrieben werden, die ich dann weiter verarbeiten möchte.
Ich habe schon Versuche unternommen, dass ich den Inhalt des Ordners Bilder in eine Text Datei schreiben ließ, dann eine weitere Datei in der Ordner Bilder kopiert habe und wieder den Inhalt in eine Text. Danach habe ich den Inhalt der beiden Text Dateien vergleichen lassen. Hat aber alles nicht zu 100 % funktioniert.
Evtl. hat jemand eine Möglichkeit für mich.
Grüß
Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 194256
Url: https://administrator.de/forum/verzeichnis-auf-neue-dateien-pruefen-und-den-namen-dieser-in-eine-text-datei-schreiben-194256.html
Ausgedruckt am: 23.12.2024 um 04:12 Uhr
19 Kommentare
Neuester Kommentar
Hallo mike9677 und willkommen im Forum!
Um zu überprüfen, welche neuen Zeilen in der Datei "Liste2.txt" gegenüber der Datei "Liste1.txt" enthalten sind, könntest Du folgenden CMD-Befehl versuchen:
Eine Möglichkeit für die dauernde Überwachung eines Ordners findest Du im Thread Automatische PDF-Erstellung und Mail-Versand aus einem Verzeichnis beschrieben.
Es wäre übrigens sinnvoll, etwas näher auf die Rahmenbedingungen (wieviele Dateien im Ordner, in welchem Zeitabstand soll geprüft werden, ...) einzugehen.
Grüße
bastla
Um zu überprüfen, welche neuen Zeilen in der Datei "Liste2.txt" gegenüber der Datei "Liste1.txt" enthalten sind, könntest Du folgenden CMD-Befehl versuchen:
findstr /vg:Liste1.txt Liste2.txt
Es wäre übrigens sinnvoll, etwas näher auf die Rahmenbedingungen (wieviele Dateien im Ordner, in welchem Zeitabstand soll geprüft werden, ...) einzugehen.
Grüße
bastla
moin mike,
xcopy liest auch eine Exlude Liste aus das sähe in etwa so aus:
Oder es könnte eine Zeile in der Aufgabenplanung Stündlich so lauten:
Gruß Phil
xcopy liest auch eine Exlude Liste aus das sähe in etwa so aus:
:@echo off
setlocal
set "Quelle=D:\Bilder\*.jpg"
for /f "delims=" %%i in ("%Quelle%") do pushD "%%~dpi"
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul
xcopy /Lic "%Quelle%" Irgendetwas /Exclude:exclude.txt |find ":" >Neu.txt
type Neu.txt >>Exclude.txt
popd
Oder es könnte eine Zeile in der Aufgabenplanung Stündlich so lauten:
C:\Windows\System32\cmd.exe /c " pushD "D:\Bilder" & xcopy /Lic "D:\Bilder\*.jpg" "WasNirgendsIst" /Exclude:Exclude.txt |find ":" >"Neu.txt" &type "Neu.txt">>"Exclude.txt" &popD"
Gruß Phil
Die zweite Forschleife habe ich inklusive der fehlenden Klammer-zu entfernt.
Die Exclude.txt lies sich mit Pfad in Anführungszeichen nicht dem xcopy zum Auslesen übergeben, daher wird in das Verzeichnis der Exclude.TXT gesprungen (pushD).
In diesem Verzeichnis befindet sich dann auch die Neu.txt.
Für die Zeile der Aufgabenplanung muss vor der ersten Ausführung die Exclude.TXT per Hand erstellt werden damit der xcopy Befehl fehlerfrei funktioniert, ansonsten wird zur ersten Ausführung nur eine Leere Exclude.txt erstellt.
Gruß
Die Exclude.txt lies sich mit Pfad in Anführungszeichen nicht dem xcopy zum Auslesen übergeben, daher wird in das Verzeichnis der Exclude.TXT gesprungen (pushD).
In diesem Verzeichnis befindet sich dann auch die Neu.txt.
Für die Zeile der Aufgabenplanung muss vor der ersten Ausführung die Exclude.TXT per Hand erstellt werden damit der xcopy Befehl fehlerfrei funktioniert, ansonsten wird zur ersten Ausführung nur eine Leere Exclude.txt erstellt.
Gruß
Zitat von @mike9677:
ich habe es jetzt gerade mit dem o.g. CMD Befehl noch mal versucht.
2 Text-Dateien erstellt, die eine mit 1,2,3 die andere mit 1,2,3,4.
Ergebnis des CMD Befehls war 4. gut
Jetzt habe ich noch mal 2 Text-Dateien erstellt, die eine mit dem Wort Hallo, die andere mit den Worten Hallo, Erde.
Ergebnis des CMD-Befehls war eine lehre Datei.
ich habe es jetzt gerade mit dem o.g. CMD Befehl noch mal versucht.
2 Text-Dateien erstellt, die eine mit 1,2,3 die andere mit 1,2,3,4.
Ergebnis des CMD Befehls war 4. gut
Jetzt habe ich noch mal 2 Text-Dateien erstellt, die eine mit dem Wort Hallo, die andere mit den Worten Hallo, Erde.
Ergebnis des CMD-Befehls war eine lehre Datei.
Wenn es bei dir mit "Hallo" und "Hallo, Erde" (ich hoffe, in 2 Zeilen, oder?) nicht geht muss da wohl was schiefgelaufen sein. Das muss funktionieren.
Gruß
Andi
ohne Pfadangabe muss dann wieder eine Forschleife Drumherumgebastelt werden, womit wir wieder fast beim Anfang wären.
Gruß Phil
@echo off
setlocal
set "Quelle=D:\Bilder\*.jpg"
pushD "D:\Bilder\"
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul
(
for /f "delims=" %%i in ('xcopy /Lic "%Quelle%" Irgendetwas /Exclude:exclude.txt ^|find ":" ') do (
>&3 echo %%~nxi
>&4 echo %%~nxi
)) 3>Neu.txt 4>>Exclude.txt
popd
Gruß Phil
moin mike,
Dafür werden die Verzeichnisse mit Wildcard per call als Parameter in eine Subroutine übergeben.
Bei Sonderzeichen )(,;&^LEERZEICHEN im Pfad werden Anführungszeichen drumherum gesetzt:
Gruß Phil
Dafür werden die Verzeichnisse mit Wildcard per call als Parameter in eine Subroutine übergeben.
Bei Sonderzeichen )(,;&^LEERZEICHEN im Pfad werden Anführungszeichen drumherum gesetzt:
:@echo off
pushD "D:\Dort wo exclude.txt ist\"
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul
rem LogDatei fuehren
3>>"%~n0-LOG.txt" >&3 echo %date% %time% ---- Start ----
rem Die Pfade der Subroutine als Parameter Übergeben
2>>"%~n0-LOG.txt" 3>Neu.txt 4>>Exclude.txt call :SUB D:\Bilder\*.jpg D:\Bilder\*.tif D:\Bilder\*.bmp "D:\Bilder 02\*.jpg"
rem LogDatei fuehren
<Neu.txt 3>>"%~n0-LOG.txt" (for /f %%i in ('find /c /v "" ') do >&3 echo %%i Datei^(en^) hinzugekommen)
3>>"%~n0-LOG.txt" >&3 echo %date% %time% ------------------- Ende ------------------
popd
exit /b
:SUB
set "N="
<nul >&2 set /p ="%~1 "
(
for /f "delims=" %%i in ('xcopy /Lics %1 Irgendetwas /Exclude:exclude.txt ^|find ":" ') do (
>&3 echo %%~nxi
>&4 echo %%~nxi
set /a n+=1
))
>&2 (if defined N (echo %N% Dateie^(en^)) else echo()
if "%~2" neq "" shift &goto :sub
Gruß Phil
Hast Du denn einmal ping /? in die CMD-Line eingegeben?
Der Befehl, um ca. 2 min per ping zu warten, lautet:
Die Wartezeit und der Batchaufruf sollten aber erst nach popD sowie vor (dem nur vorsorglichen) exit /b erfolgen.
Ist dann etwas sauberer Programmiert.
Eventuell schreibt unterschiede.bat in die neu.txt.
PS. den Doppelpunkt vor echo off kannst Du entfernen, wenn alles sauber durchläuft. Steht ja nur zum testen/Bugtracking auf der CMD-line Da.
Gruß Phil
Der Befehl, um ca. 2 min per ping zu warten, lautet:
ping localhost -n 120 >nul
Ist dann etwas sauberer Programmiert.
... erhalte ich in der Neu.TXT den Eintrag : FINDSTR: Suchzeichenfolge zu lang.
Aber nicht von diesem Batch, da hier kein Findstr verwendet wird - höchstens Find.Eventuell schreibt unterschiede.bat in die neu.txt.
PS. den Doppelpunkt vor echo off kannst Du entfernen, wenn alles sauber durchläuft. Steht ja nur zum testen/Bugtracking auf der CMD-line Da.
Gruß Phil
Genau dafür gibt es ein kleines praktisches Programm namens MD5 FILE HASHER von Digital-Tronic.
Mit dem Programm können vollautomatische Dateiüberprüfungen erstellt werden, um in zeitgesteuerten Abständen beliebige Dateien, Dateitypen und ganze Ordner zu überwachen. Dabei stehen umfangreiche Filterfunktionen und Ausnahmeregeln zur Verfügung, um beispielsweise alle JPG, BMP usw. Dateien eines bestimmten Verzeichnises zu überwachen. Geänderte, gelöschte und neu erstelle Dateien werden auf Wunsch als PopUp-Meldung mitgeteilt und können zusätzlich als TXT-Datei abgespeichert werden. Die Erkennung von Dateiänderungen wird mit Hilfe von MD5 Prüfsummen festgestellt. Es wird also von jeder existierenden Datei eine Art Fingerabdruck erstellt, der bei späteren Untersuchungen verglichen wird. Stimmt dieser nicht überein, so wurde die Datei geändert. Neue Dateien werden ebso aufgelistet.
Das Programm gibts auf digital-tronic.de und ist in Deutsch und Englisch verfügbar. Auf YouTube sind auch Videos bzw. Tutorials online.
Mit dem Programm können vollautomatische Dateiüberprüfungen erstellt werden, um in zeitgesteuerten Abständen beliebige Dateien, Dateitypen und ganze Ordner zu überwachen. Dabei stehen umfangreiche Filterfunktionen und Ausnahmeregeln zur Verfügung, um beispielsweise alle JPG, BMP usw. Dateien eines bestimmten Verzeichnises zu überwachen. Geänderte, gelöschte und neu erstelle Dateien werden auf Wunsch als PopUp-Meldung mitgeteilt und können zusätzlich als TXT-Datei abgespeichert werden. Die Erkennung von Dateiänderungen wird mit Hilfe von MD5 Prüfsummen festgestellt. Es wird also von jeder existierenden Datei eine Art Fingerabdruck erstellt, der bei späteren Untersuchungen verglichen wird. Stimmt dieser nicht überein, so wurde die Datei geändert. Neue Dateien werden ebso aufgelistet.
Das Programm gibts auf digital-tronic.de und ist in Deutsch und Englisch verfügbar. Auf YouTube sind auch Videos bzw. Tutorials online.