kaeptenblei
Goto Top

Ordner finden, Bilder kopieren, per Batch und Kontext-Menue im Win-Explorer

Hallo zusammen,

könnt Ihr mir helfen, eine Batch-Zeile "schöner" zu machen.

Folgendes:
Ich habe Bilder, die in immer verschiedenen Ordner und Unterverzeichnisse liegen. Die Verzeichnisstruktur sieht so aus:
d:\bilder\2011 Nov 2\123456\1 10x15\pc\opti
d:\bilder\2011 Nov 2\123456\5 13x18\pc\opti
usw.

Die Bilder liegen jeweils anders bearbeitet in den Ordner "anz format", "pc" und im "opti"-Ordner.

Die Batch soll jetzt nur die Bilder im Verzeichnis "opti" nach c:\sammelstelle kopieren. Starten möchte ich die Batch durch Links-klick im Windows-Explorer (Win XP SP3) über das Kontext-Menü.

Bisher sieht die Batch so aus: (Frage zwischendurch - wie bekomme ich hier eigentlich den Quelltext richtig eingefügt - so wie ihr das macht mit Zeilennummern usw)

@echo off
Shift
for /r %0 /d %%i in (opti) do @(copy "%%i\*.jpg" "c:\sammelstelle\")  

Läuft auch soweit - gibt zwar eine Fehlermeldung aus, wenn es kein Verzeichnis "opti" in den Unterverzeichnissen gibt, läuft aber weiter und kopiert alle jpg nach c:\sammelstelle.
also:
d:\bilder\2011 Nov 2\123456\opti - Fehler
d:\bilder\2011 Nov 2\123456\1 10x15\opti - Fehler
d:\bilder\2011 Nov 2\123456\1 10x15\pc\opti - Kopiert die Bilder....

Kann man das schöner machen ohne die Fehlermeldungen?


Die Batch heißt sammelstelle.bat bzw. .cmd und habe die nach "Dokumente und Einstellung..... Send To" kopiert. - LÄUFT.
Wenn ich aber in der Registry einen Eintrag erstelle:

[HKEY_CLASSES_ROOT\Folder\shell\Sammelstelle]

[HKEY_CLASSES_ROOT\Folder\shell\Index-erstellen\command]
@="c:\utility\sammelstelle.cmd"

Dann erscheint der Entrag Sammelstelle auch im Kontext Menü, wenn ich aber drauf klicke, dann geht ein Fester auf und ich bekomme eine Meldung "Zugriff verweigert" D:\bilder\datum....

Kennt Ihr Abhilfe, was mach ich falsch???

Danke und schöne Grüße

Frank

Content-Key: 175672

Url: https://administrator.de/contentid/175672

Printed on: April 20, 2024 at 04:04 o'clock

Member: Biber
Biber Nov 02, 2011 at 18:35:42 (UTC)
Goto Top
Moin kaeptenblei,

vielen Dank für deine gute Frage-Formulierung.

Einfachste Frage zuerst - Hilfe u.a. zur "Code-Formatierung" bekommst du am einfachsten durch Anklicken der rot leuchtenden "Formatierunghilfe" in der Kopfzeile eines Kommentars oder Beitrags bei der Erstellung.

Ungetesteter Lösungsansatz: Ändere den Bätschschnipsel wie folgt:
@echo off
Shift
for /r "%~0" /d %%i in (opti) do if exist "%%i" copy "%%i\*.jpg" "c:\sammelstelle\"  

-oder-
@for /r "%~1" /d %%i in (opti) do if exist "%%i" copy "%%i\*.jpg" "c:\sammelstelle\"  

Grüße
Biber
Member: kaeptenblei
kaeptenblei Nov 02, 2011 at 19:44:16 (UTC)
Goto Top
Hi Biber,

danke Dir.

Wie heißt es doch so schon.... "Wer lesen kann ist klar im Vorteil" Formatierung klappt... Hatte auch schon die "rote Schrift" gefunden, im Hilfstext aber nach "Quelltext" und nicht nach "Quellcode" gesucht.... face-sad

Aber ich bin jetzt total deprimiert.... hatte ich es doch mit nur 3 Zeilen (fast) geschafft....... UND DU face-smile machst daraus nur noch 1 Zeile face-smile face-wink

Beide Varianten funktionieren, sofern ich über das Kontext-Menü "Senden an" gehe.


Gibts noch eine Idee, damit das auch über den Registry Eintrag geht, damit das direkt im Kontext Menü steht?
Da bekomme ich immer noch die Meldung "Zugriff verweigert".

Danke Dir vielmals für den einzeiligen "Bätschschnipsel"

Gruß
Frank
Member: kaeptenblei
kaeptenblei Nov 05, 2011 at 11:18:46 (UTC)
Goto Top
So hab's raus....

beim Aufrufen der Batch aus der Registry muss ein "%1" dahinter, der Registry Eintrag sieht jetzt so aus:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\sammelstelle]

[HKEY_CLASSES_ROOT\Folder\shell\sammelstelle\command]
@="\"C:\\utility\\sammelstelle.bat\" \"%1\""  

Somit habe ich, wenn ich im Win Explorer, mit der Rechten Maustaste auf ein Verzeichns, jetzt den Eintrag Sammelstelle.... und die Batch wird ausgeführt.

Oder wie schon geschrieben, die Batch-Datei einfach im "Senden an" Ordner speichern, das ist am einfachsten face-smile aber nicht am schönsten face-smile

Danke nochmals,
Schönes Wochenende
Frank