Erstes Bild von jedem Ordner in einen anderen Ordner kopieren

Angerfist7612

Banned
Registriert
Juni 2008
Beiträge
194
Hallo :)

wie der Titel schon verrät möchte ich gerne das erste Bild von jedem Ordner in einen anderen Ordner kopieren. Wie stelle ich das am besten an? Es sind paar 1000 Ordner also händisch wird das wohl nix. OS is win 7.

MFG
 
Google mal "batch" und "skript", dann schreibst du dein eigenes und fertig.
 
Snooty schrieb:
Was ist denn das erste Bild? Sortiert nach Datum, Größe, Abmessungen, ...?

Wenn's nach Name geht und in jedem Ordner nummerierte Bilder sind, müsstest du ja nur nach bspw. *.jpg suchen und aus dem Suchergebnis alle Bilder nehmen, die mit '1' anfangen.

Manchmal kommt man nicht auf die einfachsten Sachen. Ich hab das gerade im Programm Everything ausprobiert und es ginge, aber wenn man da alles markiert und kopieren will, dauert es. Mit der Windows eigenen Suche dauerts ewig.

Ordner 1

ordner 1 001.jpg
ordner 1 002.jpg
ordner 1 003.jpg


Ordner 2

ordner 2 001.jpg
ordner 2 002.jpg
ordner 2 003.jpg

usw

Nach dem Prinzip ist es aufgebaut, wobei es in vielen Ordnern noch weitere Ordner gibt. Ich brauche eigentlich nur die Hauptordner, also Ebene 1?

@KTelwood Ja werde ich mal versuchen.
Ergänzung ()

Habe es mal probiert, aber kriege es nicht hin. Hab nicht so die Ahnung von scripts. Kannst mir was schreiben KTelwood? Die Pfadangaben kann ich ja dann selber ändern.

also alle Dateien mit 001.jpg im Namen sollen kopiert werden.
Ergänzung ()

F:\Neuer Ordner\001\*.jpg" "F:\Neuer Ordner 2" /E

Wie gesagt nur Dateinamen die 001 beinhalten. Weiß nicht was ich da bei *.jpg ergänzen muss.
 
Zuletzt bearbeitet:
Dieser Code hier, der als .VBS aufgerufen wird…
Code:
DIM WSHShell, WScriptShell, FSO, Argumente, DUMMY, QT, Meldung
SET WSHShell = WScript.CreateObject("WScript.Shell")
SET WScriptShell = WScript.CreateObject("WScript.Shell") 
SET FSO = CreateObject("Scripting.FileSystemObject")

Argumente = Wscript.Arguments.Count
IF Argumente = 0 THEN WScript.Quit

QT = CHR(34)
Meldung = ""
CALL OrdnerAbsuchen (UCASE(Wscript.Arguments(0)))
WSHShell.PopUp Meldung, 5, "Bearbeitet wurden:", 64 + 0
WScript.Quit

SUB OrdnerAbsuchen(LW)
DIM Ordner
DIM OrdnerName
 IF FSO.GetFolder(LW & "\").SubFolders.Count > 0 THEN
  Rem Wir hatten die Root selbst vernachlässigt
  IF FSO.FileExists(LW & "\desktop.ini") THEN
   Meldung = Meldung  & vbCr & LW & "\"
   WSHShell.Run "Attrib -h +r " & QT & LW & QT, 7, FALSE
  END IF
  FOR EACH Ordner IN FSO.GetFolder(LW & "\").SubFolders
   OrdnerName = LW & "\" & Ordner.Name
   IF InStr(UCase(OrdnerName), "RECYCLER") > 0 OR _
    InStr(UCase(OrdnerName), "VOLUMEINFORMATION") > 0 OR _
     InStr(UCase(OrdnerName), "\TEMP\") > 0 THEN
    Rem C:\WINDOWS\System32\WScript.exe c:\bin\ReadOnlyOrdenrstruktur.vbs "c:\a"
   ELSE
    IF FSO.FileExists(LW & "\" & Ordner.Name & "\desktop.ini") THEN
     Meldung = Meldung  & vbCr & LW & "\" & Ordner.Name
     WSHShell.Run "Attrib -h +r " & QT & LW & "\" & Ordner.Name & QT, 7, FALSE
    END IF
   END IF
   CALL OrdnerAbsuchen(LW & "\" & Ordner.Name)
  NEXT
 END IF
END SUB
…klappert den Startordner und alle Unterordner ab - und sucht nach einer Desktop.Ini um dem betreffenden Ordner das ReadOnly-Attribut zu verordnen (was dessen Optik aufbessert, passendes Innenleben der Desktop.Ini vorausgesetzt).

Das Grundraster müsste ausreichen stattdessen nach der *001.jpg zu fahnden um mit den Ortsinformationen ein Kopieren zu bewerkstelligen. Was passiert eigentlich wenn 2 Files den selben Namen haben..?

CN8
 
Und, bist du schon weitergekommen?

Da ich mich momentan versuche ein wenig in das Thema Batch reinzufuchsen, habe ich mal ein Script erstellt, was soweit auch schon ganz gut funktioniert. Einziges Problem ist momentan noch, dass alle Unterverzeichnisse durchsucht werden, nicht nur eine Ebene.

Um weiter zu kommen, würde mich jetzt nochmal interessieren, wie die Ordnernamen genau aussehen! Sind sie, wie in deinem Beispiel durchnummeriert?
 
Zurück
Oben