Batch Ordner überprüfen ob neue Datei vorhanden ist
Hallo!
Ist es möglich mit einer Batch datei einen Ordner zu überprüfen ob neue dateien hinzugefügt worden sind und dann den dateiennamen der neuen datei als variable zu setzen?
Danke im Voraus
mfg
Cool_Overrider
Ist es möglich mit einer Batch datei einen Ordner zu überprüfen ob neue dateien hinzugefügt worden sind und dann den dateiennamen der neuen datei als variable zu setzen?
Danke im Voraus
mfg
Cool_Overrider
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 18075
Url: https://administrator.de/contentid/18075
Ausgedruckt am: 26.11.2024 um 06:11 Uhr
10 Kommentare
Neuester Kommentar
Moin Cool_Overrider,
geht es noch eine Winzigkeit konkreter?
Bei allem Sinn für Datenschutz und patentrechtlich Schützenswertes...<ul><li>Wie definierst Du das "neu" bei Deinen "neuen" Dateien? Jünger als Britney Spears? Oder eher seit Montag 14:32h dazugekommen?</li>
<li>"in Variablen setzen", die...?? Im selben Batch abgeprüft werden? Oder erhalten werden sollen, solange der aktuelle Benutzer angemeldet ist? Oder sollen die Variablen gar einen Neustart überdauern?</li></ul>
*seufz... bitte skizzier doch einfach, was Du vorhast. Sind alles verständnisvolle Admins und Adminen hier. Ich erzähls auch nicht weiter.
Eher bin ich jedenfalls nicht bereit, mich auf ein "Geht" oder "Geht nicht" festnageln zu lassen.
Grüße
Frank / der Biber aus Bremen
geht es noch eine Winzigkeit konkreter?
Bei allem Sinn für Datenschutz und patentrechtlich Schützenswertes...<ul><li>Wie definierst Du das "neu" bei Deinen "neuen" Dateien? Jünger als Britney Spears? Oder eher seit Montag 14:32h dazugekommen?</li>
<li>"in Variablen setzen", die...?? Im selben Batch abgeprüft werden? Oder erhalten werden sollen, solange der aktuelle Benutzer angemeldet ist? Oder sollen die Variablen gar einen Neustart überdauern?</li></ul>
*seufz... bitte skizzier doch einfach, was Du vorhast. Sind alles verständnisvolle Admins und Adminen hier. Ich erzähls auch nicht weiter.
Eher bin ich jedenfalls nicht bereit, mich auf ein "Geht" oder "Geht nicht" festnageln zu lassen.
Grüße
Frank / der Biber aus Bremen
Okay soweit, Cool_Overrider,
trotzdem noch mal zum Szenario:
Irgendwo saugt Dein XP- oder W2000-Rechner friedlich vor sich hin, rund um die Uhr möglicherweise... und ebenso rund um die Uhr sollte ein Batch (oder irgendein Dienst) das Verzeichnis "Incoming" überwachen. Und seinerseits dann wiederum das VBSkriptchen aufrufen.
Hab ichs soweit richtig verstanden?
Oder reicht das Prüfen und ggf. Benachrichtigen auch in größeren Abständen, z.B. 1x pro Stunde?
Weil... ist ja erstmal die Überlegung, ob es hier sinnvoll ist, einen Batch zu schreiben, der als Dienst gestartet wird und das VBSkript aufruft oder ob man/frau die 5 Zusatzzeilen gleich mit in dieses SMS-Schick.vbs packt. Und dieses VBSkript als Dienst installiert.
Irgendwelche Präferenzen?
Biber
trotzdem noch mal zum Szenario:
Irgendwo saugt Dein XP- oder W2000-Rechner friedlich vor sich hin, rund um die Uhr möglicherweise... und ebenso rund um die Uhr sollte ein Batch (oder irgendein Dienst) das Verzeichnis "Incoming" überwachen. Und seinerseits dann wiederum das VBSkriptchen aufrufen.
Hab ichs soweit richtig verstanden?
Oder reicht das Prüfen und ggf. Benachrichtigen auch in größeren Abständen, z.B. 1x pro Stunde?
Weil... ist ja erstmal die Überlegung, ob es hier sinnvoll ist, einen Batch zu schreiben, der als Dienst gestartet wird und das VBSkript aufruft oder ob man/frau die 5 Zusatzzeilen gleich mit in dieses SMS-Schick.vbs packt. Und dieses VBSkript als Dienst installiert.
Irgendwelche Präferenzen?
Biber
Na ja, Cool_Overrider,
in VBSkript bin ich auch kein Experte, aber ich kenne ein oder zwei hier im Forum..
Ich habe gestern aber in Probleme mit Find unter Windows eine Lösungsstrategie skizzert, die auch bei Dir passen sollte.
Mimik (für Deine Anfordeung): Eine kleine Textdatei "DirInhalt.Alt" enthält die Namen aller Dateien, die bereits "gesmst" sind.
Dieser Listeninhalt wird verglichen mit den aktuell gefundenen Dateien (neu erzeugte Textdatei "DirInhalt.Neu" im gleichen Format wie die "DirInhalt.Alt"). Du kannst diese Dateinamen natürlich auch durchloopen ohne den Zwischenschritt des Speicherns in eine Datei.
Wenn da eine Datei im Verzeichnis gefunden wird, die nicht in der "DirInhalt.alt" ist , dann Aufruf der SMS-Unterroutine und bei Erfolg hinzufügen des Dateinamens zu der "DirInhalt.Alt"
Ob Du das mit Batchbefehlen wie DIR und FOR..IN..DO.. oder über VBS mit Scripting.FileSystemObject-Geraffel machst, ist Geschmackssache.
Biber
in VBSkript bin ich auch kein Experte, aber ich kenne ein oder zwei hier im Forum..
Ich habe gestern aber in Probleme mit Find unter Windows eine Lösungsstrategie skizzert, die auch bei Dir passen sollte.
Mimik (für Deine Anfordeung): Eine kleine Textdatei "DirInhalt.Alt" enthält die Namen aller Dateien, die bereits "gesmst" sind.
Dieser Listeninhalt wird verglichen mit den aktuell gefundenen Dateien (neu erzeugte Textdatei "DirInhalt.Neu" im gleichen Format wie die "DirInhalt.Alt"). Du kannst diese Dateinamen natürlich auch durchloopen ohne den Zwischenschritt des Speicherns in eine Datei.
Wenn da eine Datei im Verzeichnis gefunden wird, die nicht in der "DirInhalt.alt" ist , dann Aufruf der SMS-Unterroutine und bei Erfolg hinzufügen des Dateinamens zu der "DirInhalt.Alt"
Ob Du das mit Batchbefehlen wie DIR und FOR..IN..DO.. oder über VBS mit Scripting.FileSystemObject-Geraffel machst, ist Geschmackssache.
Biber
Versuchs einfach mal so, mein VBS Script schickt dann die log Datei als E-Mail Anhang mit.
Title Filecheck
:: File 1 anlegen zum Vergleich
:start1
dir d:\movies\ > c:\temp\movies1.log
:: File vergleichen
fc /c c:\temp\movies1.log c:\temp\movies2.log
if errorlevel 1 goto sendmail1
sleep 1800
:start2
:: File 2 anlegen zum Vergleich
dir d:\movies\ > c:\temp\movies2.log
:: File vergleichen
fc /c c:\temp\movies1.log c:\temp\movies2.log
if errorlevel 1 goto sendmail2
goto start1
:: Mail versenden
:sendmail1
start c:\programme\autostart\sendmail.vbs
goto start2
:sendmail2
start c:\programme\autostart\sendmail.vbs
goto start1
Title Filecheck
:: File 1 anlegen zum Vergleich
:start1
dir d:\movies\ > c:\temp\movies1.log
:: File vergleichen
fc /c c:\temp\movies1.log c:\temp\movies2.log
if errorlevel 1 goto sendmail1
sleep 1800
:start2
:: File 2 anlegen zum Vergleich
dir d:\movies\ > c:\temp\movies2.log
:: File vergleichen
fc /c c:\temp\movies1.log c:\temp\movies2.log
if errorlevel 1 goto sendmail2
goto start1
:: Mail versenden
:sendmail1
start c:\programme\autostart\sendmail.vbs
goto start2
:sendmail2
start c:\programme\autostart\sendmail.vbs
goto start1
Jepp, so1968,
Deine Skizze sollte das tun, was sie soll, aber (Rückfrage):
Beim ersten Starten haut diese Prüfung doch ins Mett, weil es noch gar keine "..movies2.log" gibt, oder?
Und jagt dann unter Umständen um 03h morgens eine SMS an den ärmsten Cool_Overrider raus und weckt ihn unnötig...
Sonst denke ich, läuft es - ich hatte den Thread schon ganz verdrängt, weil immer nur solche "geht aba ned"-Antworten kamen. Da schalte ich dann immer auf Energiespar-Modus..
Gruß Biber
Deine Skizze sollte das tun, was sie soll, aber (Rückfrage):
:: File vergleichen
fc /c c:\temp\movies1.log c:\temp\movies2.log
fc /c c:\temp\movies1.log c:\temp\movies2.log
Beim ersten Starten haut diese Prüfung doch ins Mett, weil es noch gar keine "..movies2.log" gibt, oder?
Und jagt dann unter Umständen um 03h morgens eine SMS an den ärmsten Cool_Overrider raus und weckt ihn unnötig...
Sonst denke ich, läuft es - ich hatte den Thread schon ganz verdrängt, weil immer nur solche "geht aba ned"-Antworten kamen. Da schalte ich dann immer auf Energiespar-Modus..
Gruß Biber