Dateien kopieren die nicht mehr verändert werden?
Hi Leute,
Ich habe eine Vu+ Receiver der auf die lokale Platte Videos aufnimmt.
Aus administrativen Gründen muss ich die Aufnahmen der Vu+ nach Fertigstellung auf ein NAS verschieben.
Leider werden die Dateien auf der VU+ während der Aufnahme NICHT gesperrt.
Das heißt ich muss irgendwie sicherstellen, dass eine Datei nicht mehr am Aufnehmen ist BEVOR ich sie verschiebe!
Jetzt hab ich hier ein Beispiel gefunden das schon gut funktioniert.
Batch - Dateien verschieben, bis auf die von den letzten 3 Tagen
Es kopiert mir Dateien die älter als einen Tag sind, somit ist sichergestellt, dass keine Dateien beschädigt werden.
Frage:
Ich hätte gerne eine etwas akkuratere Methode verwendet.
Irgendein Batch das prüft ob die Datei noch wächst, und daher beschrieben wird.
Habt ihr Tipps für mich ie man das brauchbar lösen kann?
Ich habe eine Vu+ Receiver der auf die lokale Platte Videos aufnimmt.
Aus administrativen Gründen muss ich die Aufnahmen der Vu+ nach Fertigstellung auf ein NAS verschieben.
Leider werden die Dateien auf der VU+ während der Aufnahme NICHT gesperrt.
Das heißt ich muss irgendwie sicherstellen, dass eine Datei nicht mehr am Aufnehmen ist BEVOR ich sie verschiebe!
Jetzt hab ich hier ein Beispiel gefunden das schon gut funktioniert.
Batch - Dateien verschieben, bis auf die von den letzten 3 Tagen
Es kopiert mir Dateien die älter als einen Tag sind, somit ist sichergestellt, dass keine Dateien beschädigt werden.
Frage:
Ich hätte gerne eine etwas akkuratere Methode verwendet.
Irgendein Batch das prüft ob die Datei noch wächst, und daher beschrieben wird.
Habt ihr Tipps für mich ie man das brauchbar lösen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 319031
Url: https://administrator.de/contentid/319031
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
10 Kommentare
Neuester Kommentar
Hey,
du könntest prüfen, ob es noch ein Filehandle für die Datei gibt.
Ist aber nur so eine ungetestete Idee.
Gruß, Endoro
du könntest prüfen, ob es noch ein Filehandle für die Datei gibt.
Ist aber nur so eine ungetestete Idee.
Gruß, Endoro
Oder man öffnet ein FileHandle mit "write", wenn das fehlschlägt weist du das es noch geöffnet ist. Mit Powershell schnell gemacht.
Gruß
try{
$f = [IO.File]::OpenWrite("\\Server\Freigabe\test.ts")
write-host "Datei nicht gesperrt"
$f.Close()
}catch [System.IO.IOException]{
write-host "Datei gesperrt"
}
Nicht weiter schwer ..
Grüße Schluckauf
@echo off
2>nul (
>>video.ts echo off
) && (echo Datei ist gesperrt) || (echo Datei ist nicht gesperrt)
Wenn du Profi bist solltest du wissen was das Script macht
Ist es möglich, wird die Datei ohne sie tatsächlich zu verändern im Append-Modus geöffnet und wieder geschlossen und die andere Meldung ausgegeben.
Wenn ich das richtig verstanden habe, versucht dein Batch etwas an die entsprechende Datei anzuhängen und prüft so ab ob sie gesperrt ist?
Wenn man versucht in eine Datei zu schreiben muss sie ja mit Schreibzugriff geöffnet werden, wenn das nicht klappt wird die entsprechende Meldung ausgegeben.Ist es möglich, wird die Datei ohne sie tatsächlich zu verändern im Append-Modus geöffnet und wieder geschlossen und die andere Meldung ausgegeben.