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

Frage Entwicklung Batch & Shell

Verzeichnis auf neue Dateien prüfen und den Namen dieser in eine Text-Datei schreiben

Mitglied: mike9677

mike9677 (Level 1) - Jetzt verbinden

14.11.2012 um 19:22 Uhr, 3203 Aufrufe, 19 Kommentare

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

Mitglied: bastla
14.11.2012 um 21:39 Uhr
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:
findstr /vg:Liste1.txt Liste2.txt
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
Bitte warten ..
Mitglied: mike9677
15.11.2012 um 08:05 Uhr
Hallo und Danke für die Antwort.

Mit dem beschriebenen CMD Befehl habe ich es bereits versucht.
Manchmal funktioniert es, manchmal nicht. Oder muss ich, wenn ich es als Batch-File ausführe, noch etwas ergänzen ?

Der Link zur automatischen PDF-Erstellung und das Skript, welches sich dort befindet, verstehe ich leider nicht ganz.
OK, ich sehe, wo ich den Pfad anpassen muss, um den zu überwachenden Ordner einzugeben.
Aber erstellt das Skript dann auch eine Text-Datei mit dem Namen der neu im Ordner entdeckten Datei und wo findet sich dann diese Text-Datei ?

zu den Rahmenbedingungen: Es befinden sich mehrere Tausend Dateien in dem zu überwachenden Ordner und es wird in unegelmäßigen Abständen immer etwas hinzugefügt. Die Prüfung sollte evtl. jede Stunde erfolgen.

Besten Dank
Bitte warten ..
Mitglied: mike9677
15.11.2012 um 08:40 Uhr
Hallo
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.
Bitte warten ..
Mitglied: pieh-ejdsch
15.11.2012, aktualisiert um 15:00 Uhr
moin mike,

xcopy liest auch eine Exlude Liste aus das sähe in etwa so aus:
01.
:@echo off 
02.
setlocal 
03.
set "Quelle=D:\Bilder\*.jpg" 
04.
 
05.
for /f "delims=" %%i in ("%Quelle%") do pushD "%%~dpi" 
06.
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul  
07.
xcopy /Lic "%Quelle%" Irgendetwas /Exclude:exclude.txt |find ":" >Neu.txt 
08.
type Neu.txt >>Exclude.txt 
09.
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
Bitte warten ..
Mitglied: mike9677
15.11.2012 um 13:17 Uhr
Hallo und Danke für die Hilfe,

wenn ich aber den zuerst genannten Code verwende, die Quelle anpasse und das ganze als Batch laufen lasse, sehe ich zwar kurz ein DOS Fenster, aber das war es dann.
Muss ich noch was anderes anpassen ?

und die Aufgabenplanung: was passiert durch diese Eintragungen ?
Wird hier eine .txt erzeugt und wo ?

Sorry für die vielen Fragen, aber ich bin hierin nicht so bewandert, sonst würde ich mich ja auch nicht an dieses Forum wenden.

Gruß
mike
Bitte warten ..
Mitglied: pieh-ejdsch
15.11.2012, aktualisiert um 15:14 Uhr
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ß
Bitte warten ..
Mitglied: andimue
15.11.2012 um 15:14 Uhr
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.

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
Bitte warten ..
Mitglied: mike9677
15.11.2012 um 15:38 Uhr
Hallo pieh-ejdsch,

das funktioniert jetzt tadellos.

Es gibt in dem Ordner Bilder noch jede Menge Unterordner. Wenn ich da was reinkopiere, gibt er mir das nicht aus.
Und könnte man die Ablage der Exclude.txt sowie Neu.txt auf c:/ueberwachung umbiegen ??

Vielen Dank
mike
Bitte warten ..
Mitglied: pieh-ejdsch
15.11.2012, aktualisiert um 15:56 Uhr
an den Xcopy muss ein /s für Subdirectories angefügt werden.

Im Batch muss Zeile 05 angepasst werden/etwa so lauten (die For kommt dann weg)
pushD C:\ueberwachung
für die Aufgabenplanung Entsprechend: ... Pushd c:\ueberwachung & xcopy /Lics ... anpassen.

Gruß Phil
Bitte warten ..
Mitglied: mike9677
15.11.2012, aktualisiert um 16:11 Uhr
Meinst du so:

:@echo off
setlocal
set "Quelle=D:\JD\*.jpg"

for /f "delims=" %%i in ("%Quelle%") do pushD "%%~dpi"
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul
xcopy /s /Lic "%Quelle%" Irgendetwas /Exclude:exclude.txt |find ":" >Neu.txt
type Neu.txt >>Exclude.txt
popd

OK... habs hinbekommen.
Gibt es jetzt noch eine Möglichkeit, keine Pfadangabe in der Neu.txt zu bekommen ??
Also einfach den Namen der Datei ?

mike
Bitte warten ..
Mitglied: pieh-ejdsch
15.11.2012, aktualisiert um 17:53 Uhr
ohne Pfadangabe muss dann wieder eine Forschleife Drumherumgebastelt werden, womit wir wieder fast beim Anfang wären.

01.
@echo off 
02.
setlocal 
03.
set "Quelle=D:\Bilder\*.jpg" 
04.
 
05.
pushD "D:\Bilder\" 
06.
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul  
07.
 
08.
09.
 for /f "delims=" %%i in ('xcopy /Lic "%Quelle%" Irgendetwas /Exclude:exclude.txt ^|find ":" ') do ( 
10.
  >&3 echo %%~nxi 
11.
  >&4 echo %%~nxi 
12.
)) 3>Neu.txt 4>>Exclude.txt 
13.
 
14.
popd

Gruß Phil
Bitte warten ..
Mitglied: mike9677
15.11.2012, aktualisiert um 21:28 Uhr
Hi, ICH WERD' VERRÜCKT !!!!

Wenn du mir jetzt noch verrätst, wie ich einen weitern Ordner als Quelle hinzufügen kann (besonders wenn der Ordner "Bilder 02" heißt, mit einem Leerzeichen), bzw eine Erweiterung der Dateiendung (.jpg .raw .tiff) einbauen kann ??

Besten Dank an dich, pieh-ejdsch !!!!
Bitte warten ..
Mitglied: pieh-ejdsch
16.11.2012 um 09:49 Uhr
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:
01.
:@echo off 
02.
 
03.
pushD "D:\Dort wo exclude.txt ist\" 
04.
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul  
05.
 
06.
 rem LogDatei fuehren 
07.
3>>"%~n0-LOG.txt" >&3 echo %date% %time% ---- Start ---- 
08.
 
09.
 rem Die Pfade der Subroutine als Parameter Übergeben 
10.
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" 
11.
 
12.
 rem LogDatei fuehren 
13.
<Neu.txt 3>>"%~n0-LOG.txt" (for /f %%i in ('find /c /v "" ') do >&3 echo %%i Datei^(en^) hinzugekommen)   
14.
3>>"%~n0-LOG.txt" >&3 echo %date% %time% ------------------- Ende ------------------ 
15.
 
16.
popd 
17.
exit /b  
18.
 
19.
:SUB 
20.
set "N=" 
21.
<nul >&2 set /p ="%~1	" 
22.
23.
 for /f "delims=" %%i in ('xcopy /Lics %1 Irgendetwas /Exclude:exclude.txt ^|find ":" ') do ( 
24.
  >&3 echo %%~nxi 
25.
  >&4 echo %%~nxi 
26.
  set /a n+=1 
27.
)) 
28.
>&2 (if defined N (echo %N% Dateie^(en^)) else echo() 
29.
if "%~2" neq "" shift &goto :sub
Gruß Phil
Bitte warten ..
Mitglied: mike9677
16.11.2012 um 11:17 Uhr
Cool, besten Dank !!

Wenn ich jetzt nach Ausführung der Anwendung mit einer Zeitverzögerung von 2 Min. eine weitere .bat starten möchte, gäbe es dafür auch noch eine Möglichkeit ?

Überglückliche Grüß
mike
Bitte warten ..
Mitglied: pieh-ejdsch
16.11.2012 um 11:39 Uhr
da gibt es mehrere möglichkeiten je nach OS bzw. cmd Equipment
timeout /? 
ping /? 
waitfor /? 
sleep /?
01.
 rem zB. vor der exit Zeile 17 
02.
timeout /t 120 /nobreak  
03.
D:\scripte\anderebatch.cmd
Gruß Phil
Bitte warten ..
Mitglied: mike9677
16.11.2012, aktualisiert um 13:26 Uhr
Hi,

wenn ich es so mache (timeout und waitfor funktionieren nicht, erhalte ich in der Neu.TXT den Eintrag : FINDSTR: Suchzeichenfolge zu lang.
Aber die Unterschiede.bat wird ausgeführt, wenn auch wohl die Zahl (Zeit bis zur Ausführung) keine Auswirkung hat.

01.
 :@echo off 
02.
 
03.
pushD "D:\" 
04.
if not exist exclude.txt 3>exclude.txt ping localhost -n 2 >nul  
05.
 
06.
 rem LogDatei fuehren 
07.
3>>"%~n0-LOG.txt" >&3 echo %date% %time% ---- Start ---- 
08.
 
09.
 rem Die Pfade der Subroutine als Parameter Übergeben 
10.
2>>"%~n0-LOG.txt" 3>Neu.txt 4>>Exclude.txt call :SUB D:\JD\*.jpg "D:\JD 02\*.bmp"  
11.
 
12.
 rem LogDatei fuehren 
13.
<Neu.txt 3>>"%~n0-LOG.txt" (for /f %%i in ('find /c /v "" ') do >&3 echo %%i Datei^(en^) hinzugekommen)   
14.
3>>"%~n0-LOG.txt" >&3 echo %date% %time% ------------------- Ende ------------------ 
15.
 
16.
 rem zB. vor der exit Zeile 17  
17.
 
18.
ping /t 1200 /nobreak   
19.
D:\unterschiede.bat 
20.
 
21.
popd 
22.
exit /b  
23.
 
24.
:SUB 
25.
set "N=" 
26.
<nul >&2 set /p ="%~1	" 
27.
28.
 for /f "delims=" %%i in ('xcopy /Lics %1 Irgendetwas /Exclude:exclude.txt ^|find ":" ') do ( 
29.
  >&3 echo %%~nxi 
30.
  >&4 echo %%~nxi 
31.
  set /a n+=1 
32.
)) 
33.
>&2 (if defined N (echo %N% Dateie^(en^)) else echo() 
34.
if "%~2" neq "" shift &goto :sub 
35.
 
36.
 
Bitte warten ..
Mitglied: pieh-ejdsch
16.11.2012, aktualisiert um 18:12 Uhr
Hast Du denn einmal ping /? in die CMD-Line eingegeben?
Der Befehl, um ca. 2 min per ping zu warten, lautet:
ping localhost -n 120 >nul
Die Wartezeit und der Batchaufruf sollten aber erst nach popD sowie vor (dem nur vorsorglichen) exit /b erfolgen.
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
Bitte warten ..
Mitglied: SilentTom
26.11.2012 um 00:32 Uhr
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.
Bitte warten ..
Mitglied: mike9677
26.11.2012 um 08:08 Uhr
Schön, das Programm werde ich mir mal bei Gelegenheit noch ansehen.

Bin aber für den Moment mit der bisherigen Lösung voll und ganz zufrieden, da ich alles (Prüfung auf neue Inhalte, erstellen einer .txt und versenden der .txt per email) in einer BATCH am Laufen habe.

Hier sei nochmal gesagt: vielen vielen Dank an phil !!!

Gruß
mike
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ordner von einem Verzeichnis in ein anderes Verzeichnis kopieren und Datei-Name verändern
gelöst Frage von gudboyBatch & Shell15 Kommentare

Ich habe ein "Verzeichnis A" mit Ordner. Die Ordner haben immer eine "F-Nummer" und einen Titel wie z.B. " ...

Batch & Shell
Error abfangen und in Text Datei schreiben
gelöst Frage von mr.kkevBatch & Shell3 Kommentare

Guten Abend Experten Ausgangslage: Ich habe ein Skript, welches Daten aus einer Txt Datei liest und diese überprüft. Dann ...

Batch & Shell
Text Datei bestimmte Bereiche lesen und in neue Text schreiben
gelöst Frage von Doktore1Batch & Shell3 Kommentare

Hallo @ all, bin neu hier und habe sehr wenig Erfahrung mit batch Skripten. Ich würde mich sehr freuen ...

Batch & Shell
Bestimmte Zeile aus mehreren Dateien in eine neue Datei schreiben
gelöst Frage von Oggy76Batch & Shell5 Kommentare

Hallo zusammen, meine Kenntnisse in Sachen batch/shell sind ehr auf Anfängerniveau zu sehen. Grund -basics im CMD-Prompt sind vorhanden, ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 8 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit24 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen23 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...