263
RiceManu

Mehrere Dateien an Batch übergeben

Mitglied: zavjah
01.11.2008
19:31:18 Uhr
3437 Aufrufe
6 Antworten
Hallo,

diese Frage ist bestimmt irgendwo im Forum schon beantwortet, aber ich finde es einfach nicht. Es gibt Haufen weise Lösungen für Übergabe mehrere Dateien an Batch, aber diese sind entweder alle *.jpg oder alle Dateien usw.

Was ich benötige ist folgendes:
Ich möchte im WinExplorer mehrere Dateien auswählen und diese per SendTo an ein Batch übergeben. In der Batch soll eine Schleife die Argumentenliste durchgehen und einen Befefl für jede dieser Dateien ausführen.

Ich könnte es problemlos mit vbs machen, aber ich möchte den Umweg nicht gehen, weil ich vermute, dass DOS so was auch kann.

ALso, hat mir jemand einen Kurzen hinweis darauf, wie ich diese schleife bauen muss, die für jede Datei aus der Argumentenliste ein
'Copy %%1 c:\tmp'
macht???

Danke und Gruß,
zavjah

Mitglied: bastla
bastla schreibt am 01.11.2008 um 20:27:31 Uhr
Hallo Hajvazovic!

Versuch es so:
@for %%i in (%*) do @copy %%i C:\tmp>nul
Grüße
bastla
Mitglied: zavjah
zavjah schreibt am 01.11.2008 um 21:03:48 Uhr
Hallo,

danke für die schnelle Antwort. Es tut, aber nur wenn ich max. 5 Dateien an die Bat übergebe. Wieso ist es so???
Mitglied: bastla
bastla schreibt am 01.11.2008 um 21:36:45 Uhr
Hallo Hajvazovic!

Ausgehend von einer maximalen Länge einer Befehlszeile von 2048 Zeichen sollten eigentlich doch mehr als 5 Dateien übergeben werden können (was bei mir etwa mit 38 Dateien - eben getestet - auch funktioniert) ...

Wenn ich allerdings versuche, Dateien mit einer Gesamtlänge (inkl. der Pfade) von über ca 2000 Zeichen zu übergeben, erhalte ich die Fehlermeldung:
"Auf das angegebene Gerät, bzw. den Pfad oder die Datei kann nicht zugegriffen werden. Sie verfügen eventuell nicht über ausreichende Berechtigungen, um auf das Element zugreifen zu können."

Gibt's bei Dir auch eine Fehlermeldung?

Grüße
bastla
Mitglied: zavjah
zavjah schreibt am 01.11.2008 um 23:08:09 Uhr
Servus Bastla,

nein , ich bekomme keine Fehlermeldung. Allerdings mache ich es so, dass ich die markierten Datei an eine VErknüpfung zur Batch sende, die ich unter SendTo abgelegt habe. Vielleicht bekomme ich deshalb keine Fehlermeldung, weil sie nicht ausgegeben werden kann.

Dok's die ich versuche an die Batch zu senden haben eine Pfadlänge von 50 Zeichen pro Datei.

Danke und Gruß,
zavjah
Mitglied: bastla
bastla schreibt am 01.11.2008 um 23:22:17 Uhr
Hallo Hajvazovic!

Sowohl mit Verknüpfung als auch mit Batchdatei selbst in "Send To" erhalte ich unter XP das selbe (oben beschriebene) Ergebnis ...

Vielleicht versuchst Du es zum Testen einmal mit der folgenden Batchdatei (unmittelbar in "Send To" gespeichert):
01.
@for %%i in (%*) do @echo copy %%i C:\tmp 
02.
@pause
Damit sollen die "copy"-Befehle nur angezeigt werden.

Grüße
bastla
Mitglied: zavjah
zavjah schreibt am 02.11.2008 um 18:58:55 Uhr
Hi bastla,

die Copy Befehle werden nun richtig angezeigt. Ich habe es mit 40 Dateien erfolgreich getestet. Anschließend habe ich echo entfernt und das richtige kopieren tut nun auch.

Danke und Gruß,
zavjah

Nachtrag: so sieht nun meine "ein-Zeilen-Batch" aus:
@for %%i in (%*) do exifiron.exe -R %%i>null

Wie kriege ich es hin, dass der Dos-Fenster nicht erscheint, wenn die Batch ausgeführt wird (die batch dreht die Fotos links/rechts um 90°)
mehr ...Ähnliche Beiträge