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:
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.