concurve
Goto Top

Bestimmte Datei per Batch in Ordner kopieren, wenn bestimmte .Ext in Ordner vorhanden

Hallo zusammen,

aufgrund Speicher-Limitierung in meinem PC muss ich nun meine *.mov, *.avi, etc. vom PC entfernen, so dass ich diese nur noch auf meinem NAS habe. Nun habe ich hierbei aber folgendes Problem ...

Lösche ich ein Film auf meinem PC, so habe ich in meiner Bilder-, Videodatenbank, die ausschließlich lokal betrieben wird, keinerlei Hinweis darauf, dass es für meinen Ordner (z.B. 14.11.2016 Wanderung im Park) auch ein Video gibt (das gibt es ja nur noch auf meinem NAS).

Meine Überlegung hierzu:
Immer dann,wenn in einem Ordner eine *.mov-, *.avi-, *.mp4-Datei vorhanden ist, soll ein ganz bestimmtes *.jpg in den gleichen Ordner kopiert werden.
Ich bräuchte nun eine Batch die mir mein Laufwerk inkl. aller zugehörigen Unterordner durchsucht und dann diesen Kopier-Prozess durchführt. Dieses Hinweis-Bild benötige ich aber nur 1x im Ordner, nicht pro *.avi, *.mov, etc ... das wäre sonst ein bisschen zu viel des Guten.

Wenn ich sodann alle *.mov, *avi, etc. von meinem PC lösche, hätte ich, wenn in diesem Ordner eine solche Datei mal existiert hat, einen Bild-Hinweis dazu in meiner Bilder-Datenbank. Das Video müsste ich mir natürlich im NAS ansehen ... aber wenigstens wüsste ich, dass eines vorhanden ist.

Kann mir vielleicht jemand bei der Erstellung einer Batch helfen, ich vermute mal ich brauche eine "if exist", nur weiß ich nicht wo und wie genau ich hier anfangen soll.

Gruß
Con

Content-ID: 321004

Url: https://administrator.de/forum/bestimmte-datei-per-batch-in-ordner-kopieren-wenn-bestimmte-ext-in-ordner-vorhanden-321004.html

Ausgedruckt am: 23.12.2024 um 11:12 Uhr

Herbrich19
Herbrich19 15.11.2016 um 06:00:12 Uhr
Goto Top
Hallo,

Mit Batch Scripten kenne ich mich zwar nicht so aus aber mit .NET (VB.NET / C#) lässt sich sowas sehr schnell Realisieren. Einfach in
My.Computer.Filesystem
kuken was man da so braucht. Es giebt File Exist, und in
System.IO.Path.GetExtension(><filename>)
lässt sich auch gut eine Dateierweiterung abfragen.

Gruß an die IT-Welt
J Herbrich
Concurve
Concurve 15.11.2016 um 08:40:32 Uhr
Goto Top
Hallo Herbich19 und vielen Dank für Deine Antwort.

Ich bin mir sicher, dass das was Du da schreibst in irgendeiner Art und Weise eine Daseinsberechtigung hat ... ich verstehe bedauerlicherweise nur kein Wort face-wink.

Mit anderen Worten ... Ich bin froh mich mit meinem "Fachwissen" bei *.bat über Wasser halten zu können und ggf. Pfade oder andere Kleinigkeiten bei bestehenden Funktionen anpassen zu können. Mal eben eine Funktion aus dem Ärmel schütteln - nein, da bin ich bedauerlicherweise zu doof.

Ich habe mir eine Funktion zusammengestellt, nur leider funktioniert sie nicht so wie ich will (eigentlich funktioniert sie gar nicht). Ich bin mir auch nicht wirklich sicher ob das überhaupt funktionieren kann, was ich da mache oder ob ich vielleicht eine "if exist" benötige, auch das habe ich mal versucht, scheitere aber in gleichem Maße wie nun auch hier.

@echo off & setlocal

TITLE BBR - Suche Movie, kopiere Hinweis V.0.1

set "Bilder=C:\Users\VKP\Desktop\test"  
set "Hinweis=C:\Users\VKP\Desktop\test\Hinweis auf Video.jpg"  

FOR /F "delims=%Bilder%" %%i in (*.avi;*.mov;*.mp4;) do copy "%Hinweis%" "%%i"  
pause

Um Ratschläge wäre ich dankbar.

Gruß
Con
Herbrich19
Herbrich19 15.11.2016 um 08:43:57 Uhr
Goto Top
Welche Dateierweiterung hat deine Hinweis Datei eig und was muss in ihr drinnen stehen oder reicht es nur wen sie da ist? Könnte vlt ein kleines Programm schreiben auf die schnelle wen ich die Rahmen Parameter dafür wisste.

Gruß an die IT-Welt,
J Herbrich
emeriks
emeriks 15.11.2016 um 08:52:01 Uhr
Goto Top
Hi,
Du könntest für jede Datei, welche Du aufs NAS verschoben hast, lokal eine Symbolische Verknüpfung anlegen. Damit sollten die meisten Programme klar kommen.

move c:\Daten\Film1.mov \\nas\freigabe\Film1.mov
mklink c:\Daten\Film1.mov \\nas\freigabe\Film1.mov

E.
Concurve
Concurve 15.11.2016 um 20:17:47 Uhr
Goto Top
Hallo Herbich19,

der Hinweis ist ein einfacher Text der als Bild gespeichert wurde. Die Datei heisst "Hinweis auf Video.jpg". Im Prinzip reicht mir der Hinweis 1x pro Unter- oder UnterUnterordner aus, wenn dort eben eine oder aber auch mehrere *.mov, *.avi, etc. enthalten ist.
Wenn Du mir da helfen könntest, wäre es toll. Ich habe das heute noch einmal versucht aber da bin ich einfach nicht tief genug im Thema, diese variable zum durchsuchen und aber auch zur Definition des Zielordners machen mir das Erstellen schwer.

@emeriks: Danke auch Dir für Deine Anregung, generell ist auch das keine schlechte Idee - aber - ich habe insgesamt rund 2.000 Ordner und Unterordner. Hier nun jeden Pfad im Detail auszuwerten und in eine Liste einzufügen, die dann zur *.bat-Vorlage verwendet werden kann ... das ist eine Mega-Aufgabe! Da ist die "Hinweis-Variante", so glaube ich, einfacher und für mich, auch wenn nicht perfekt, in jedem Falle ausreichend. Aber ich behalte diese Idee mal im Hinterkopf, vielleicht mache ich das tatsächlich mal.

Vielen Dank euch beiden für die Unterstützung!

Gruß
Con