Batch-Dateien machen erst Spaß, wenn man sie per Drag&Drop nutzen kann. Und das geht ganz einfach mit einzelnen oder mehreren 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.

Über den Autor

Mirco Lang

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Stichwortschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler.

Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds.

Wenn ich Dir helfen konnte und/oder Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen möchtest:
Spendier mir einen Kaffee via Paypal.

Kommentieren:

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere

Drag&Drop für Batch-Dateien

0