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

Am Anfang war der C-64 des großen Bruders des besten Freundes in der Grundschule ...

Der echte Technikwahn kam dann mit einer Ausbildung bei Saturn - als Computer noch erklärt werden mussten, Soundkarten benötigten, ein gutes Monatsgehalt kosteten und das Internet nur bei Nerds und mit 38 kbp/s lief, bestenfalls.

Ein Studium der Informationswirtschaft und ein paar Jahre als Redakteur bei Data Becker später, sitzt hier ein freier Journalist, der auf Old-School-Computing (cli ftw!), Free Software, Frickelei, Kodi und "Hundedinger" steht - und Grauseligkeiten wie Bild und Heftig.co zutiefst verabscheut.

Und sonst so? Sauerländer, BSI-Mitarbeiter, untalentierter Musikinstrumentebesitzer und seit 24 Jahren Skateboarder, ein ziemlich alter. Und manchmal kommt das abgebrochene Philo-Studium wieder durch ...

Artikel kommentieren: