Tutonaut
batch_drag&drop

Drag&Drop für Batch-Dateien

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.

Mirco Lang

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 Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen und Tutonaut unterstützen möchtest:
Spendier mir einen Kaffee via Paypal. Schon mal im Voraus: Danke!

Nicht verpassen: cli.help

Kommentar schreiben

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Do NOT follow this link or you will be banned from the site!