44227
Goto Top

Mehrere Dateien an Batch übergeben

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

Content-Key: 100784

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: bastla
bastla Nov 01, 2008 at 19:27:31 (UTC)
Goto Top
Hallo Hajvazovic!

Versuch es so:
@for %%i in (%*) do @copy %%i C:\tmp>nul
Grüße
bastla
Mitglied: 44227
44227 Nov 01, 2008 at 20:03:48 (UTC)
Goto Top
Hallo,

danke für die schnelle Antwort. Es tut, aber nur wenn ich max. 5 Dateien an die Bat übergebe. Wieso ist es so???
Member: bastla
bastla Nov 01, 2008 at 20:36:45 (UTC)
Goto Top
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: 44227
44227 Nov 01, 2008 at 22:08:09 (UTC)
Goto Top
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
Member: bastla
bastla Nov 01, 2008 at 22:22:17 (UTC)
Goto Top
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):
@for %%i in (%*) do @echo copy %%i C:\tmp
@pause
Damit sollen die "copy"-Befehle nur angezeigt werden.

Grüße
bastla
Mitglied: 44227
44227 Nov 02, 2008 at 17:58:55 (UTC)
Goto Top
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°)