Automatisierung mit Kotlin: Warum es Ihre Aufmerksamkeit verdient
Haben Sie schon einmal eine Stunde damit verbracht, hundert Dateien umzubenennen, Logs manuell zu parsen oder Daten von einer API in eine andere zu kopieren? Ein bekanntes Problem. Normalerweise greifen wir für solche Aufgaben zu Python oder Bash, aber Kotlin ist ein überraschend leistungsstarkes und elegantes Werkzeug für die Automatisierung mit Kotlin. Es kombiniert die Prägnanz einer modernen Sprache mit der Leistung der JVM und vollem Zugriff auf das Java-Ökosystem.
In diesem Artikel schreiben wir kein weiteres „Hallo, Welt!“. Wir kommen direkt zur Sache: Wir analysieren Kotlin Codebeispiele, die im Arbeitsalltag eines Entwicklers, Systemadministrators oder Testers wirklich nützlich sind. Sie erfahren, wie Sie Kotlin Skripte für die Dateiverwaltung, das Senden von HTTP-Anfragen, das Parsen von Daten und das Ausführen von Systembefehlen schreiben. Los geht's!
Warum Kotlin und nicht Python oder Bash?
Jede Sprache hat ihre Nische. Bash ist ideal für schnelle Einzeiler, Python für komplexe Logik und Data Science. Aber Kotlin für Automatisierung bietet einige einzigartige Vorteile:
- Typsicherheit. Sie erhalten keinen Laufzeitfehler „string vs int“ – der Compiler fängt ihn bereits zu Beginn ab.
- Vollständige Java-Kompatibilität. Jede Java-Bibliothek (Apache POI, OkHttp, Jackson) ist sofort verfügbar.
- Kotlin Script (.kts). Sie können Skripte ohne Kompilierung schreiben – führen Sie sie wie eine normale .sh-Datei aus.
- Prägnante Syntax. Weniger Boilerplate-Code, mehr Lesbarkeit.
Einrichtung der Umgebung für Kotlin-Skripte
Zum Ausführen von Kotlin Skripten müssen Sie Android Studio nicht installieren. Es genügt:
- Installieren Sie den Kotlin Compiler (oder SDKMAN).
- Erstellen Sie eine Datei mit der Erweiterung
.kts. - Starten Sie mit dem Befehl:
kotlinc -script script.kts
Fertig. Jetzt schreiben wir das erste wirklich nützliche Skript.
Beispiel 1: Massenhaftes Umbenennen von Dateien
Stellen Sie sich vor: Sie haben einen Ordner mit Fotos IMG_001.jpg, IMG_002.jpg ... IMG_100.jpg. Sie müssen sie in holiday_01.jpg, holiday_02.jpg ... umbenennen. Von Hand – 10 Minuten. Mit einem Skript – 2 Sekunden.
import java.io.File
fun main() { val folder = File("/path/to/photos") val files = folder.listFiles()?.filter { it.extension == "jpg" } ?: return
files.sorted().forEachIndexed { index, file -> val newName = "holiday_${index.toString().padStart(2, '0')}.jpg" val newFile = File(folder, newName) file.renameTo(newFile) println("Renamed: ${file.name} -> $newName") }}
// Ausführung: kotlinc -script rename.ktsDieses Kotlin Codebeispiel macht drei Dinge: Es filtert nur JPG-Dateien, sortiert sie nach Namen (um die Reihenfolge nicht zu verlieren) und benennt sie mit Nummerierung um. Beachten Sie padStart – eine elegante Kotlin-Funktion zur Zahlenformatierung.
Beispiel 2: HTTP-Anfrage und JSON-Parsing
Oft muss die Datensammlung von einer Web-API automatisiert werden. Angenommen, wir rufen eine Liste von Benutzern ab und speichern sie in einer CSV-Datei. In Kotlin für Automatisierung geschieht dies in wenigen Zeilen mit der Bibliothek ktor-client (oder dem guten alten java.net.HttpURLConnection).
Für ein Skript ist es jedoch einfacher, eine externe Bibliothek über @file:DependsOn einzubinden:
@file:DependsOn("com.google.code.gson:gson:2.10.1")@file:DependsOn("io.ktor:ktor-client-core:2.3.7")@file:DependsOn("io.ktor:ktor-client-java:2.3.7")
import io.ktor.client.*import io.ktor.client.request.*import io.ktor.client.statement.*import com.google.gson.Gsonimport com.google.gson.reflect.TypeTokenimport java.io.File\