Office & BusinessWindows

Drag&Drop für Batch-Dateien

Batch-Dateien sind auch heute noch immer wieder praktisch. Mal, um viele Dateien auf einmal zu verarbeiten. Mal, um Dinge zu erledigen, die nur Kommandozeilen-Tools so einfach können - zum Beispiel mehrere Bilder verschmelzen. Aber dafür Befehle eingeben? Ihr könnt Dateien auch einfach auf ein Batch-Skript ziehen!

Drag&Drop für mehrere Dateien

Zieht man eine Datei test.txt per Drag&Drop auf ein Batch-Skript skript.bat, wird deren Name über die Variable %1 übergeben. Es ist also das gleiche, als ob Ihr im Terminal skript.bat test.txt ausführen würdet. Etwas mehr Aufwand ist es mit mehreren Dateien.

Zieht man mehrere Dateien auf ein Batch-Skript, lassen sich alle Dateien über %* ansprechen - das funktioniert aber nicht mit allen Befehlen. Hier schon mal alles in Kurzform im Bild:

batch_dragdrop
Links wird per Schleife kopiert, rechts pauschal gelöscht.

Drag&Drop per %*

Ganz einfach ist die Angelegenheit beispielsweise mit dem Befehl del. Ein minimales Skript:

del %*

Wenn Ihr mehrere Dateien markiert und auf die Batch-Datei zieht, werden alle übergebenen Dateien gelöscht.

Drag&Drop per %1

Mit dem Befehl copy funktioniert das Ganze schon wieder nicht. Hier werden die einzelnen Dateien über %1 angesprochen - aber in einer Schleife:

if [%1]==[] goto :eof 
:loop
copy %1 results\
shift
if not [%1]==[] goto loop

Zuerst wird abgefragt, ob %1 leer ist, sprich, ob alle übergebenen Dateien bereits verarbeitet wurden - falls ja, gehts zum Ende (eof -> end of file). Dann beginnt die Schleife und es wird die erste übergebene Datei in den Ordner "results" kopiert. Shift übergibt %1 den Namen der nächsten Datei. Wieder wird geprüft, ob %1 leer ist - falls nein, gehts zum Anfang der Schleife.

Mit diesen beiden Konstruktionen sollten sich die meisten Projekte bewältigen lassen - mit abers ...

Leerzeichen ...

Leerzeichen gehören nicht in Dateinamen - wer hier mit Drag&Drop-Batch-Skripten experimentiert, wird es vermutlich merken. In der Variablen %1 landet der Name der Datei in Anführungszeichen - in der Schreibweise %~1 werden sie entfernt. Wenn Leerzeichen in Pfaden oder Dateinamen vorhanden sind, braucht man natürlich Anführungszeichen. Eigentlich sollte das kein Problem sein, aber Drag&Drop und Windows Eingabeaufforderung sind einfach keine guten Freunde - in der Praxis kommt es immer wieder mal zu merkwürdigen Phänomenen ...

Zwei Beispiele für nützliche Batch-Skripte haben wir noch: Bilder miteinander verschmelzen und Dateien per FTP hochladen - natürlich jeweils per Drag&Drop.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"