C++ Automatisierung: Skripte schreiben, die Stunden sparen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Ihr C++ – nicht nur für Spiele und Treiber

\n\n

Wenn man „C++“ hört, denkt man oft an Schwergewichte: Unreal Engines, Betriebssysteme, Hochleistungsserver. Aber es gibt eine andere, ebenso nützliche Seite – die C++ Automatisierung. Während Kollegen Einmal-Bash-Skripte schreiben oder sich mit Python-Abhängigkeiten herumschlagen, können Sie ein kompaktes, schnelles Tool bauen, das jahrelang ohne ein einziges Interpreter-Update läuft.

\n\n

In diesem Artikel zeige ich Ihnen, wie Sie C++ in ein Schweizer Taschenmesser für die Automatisierung verwandeln. Wir behandeln reale Beispiele: vom Batch-Umbenennen von Dateien bis zum Log-Parsing und der Berichtsgenerierung. Sie werden sehen, dass Routineaufgaben mit C++ automatisieren nicht kompliziert ist, sondern sich durch Geschwindigkeit und Zuverlässigkeit auszahlt.

\n\n

Warum C++ und nicht Python oder Bash?

\n\n

Jede Sprache hat ihren Platz. Aber es gibt Szenarien, in denen C++ die Nase vorn hat:

\n\n
    \n
  • Geschwindigkeit. Wenn Sie Terabytes an Logs verarbeiten – zählt jede Millisekunde.
  • \n
  • Keine Abhängigkeiten. Eine statisch kompilierte Binary läuft auf jedem Linux/Windows ohne Interpreter-Installation.
  • \n
  • Typsicherheit. Weniger Überraschungen zur Laufzeit – entscheidend für Automatisierung, die nach Zeitplan läuft.
  • \n
  • Systemzugriff. Direkte Arbeit mit WinAPI, POSIX, Registry, Prozessen – ohne Zwischenschichten.
  • \n
\n\n

Klar, für schnelle Prototypen ist Python praktischer. Aber wenn das Skript Teil der CI/CD- oder Produktionsinfrastruktur wird, zahlt sich C++ Automatisierung mehrfach aus.

\n\n

Werkzeugkasten: Was Sie brauchen

\n\n

Für unsere Aufgaben brauchen Sie nicht das gesamte C++20. Ein grundlegendes Set reicht aus:

\n\n
    \n
  • std::filesystem (C++17) – Datei- und Ordnerverwaltung
  • \n
  • std::regex – Text-Parsing
  • \n
  • std::fstream / std::stringstream – Lesen/Schreiben
  • \n
  • std::chrono – Zeitmessung und Logging
  • \n
\n\n

Kompilieren Sie mit dem Flag -std=c++17 (oder /std:c++17 für MSVC).

\n\n

Beispiel 1: Batch-Umbenennung von Dateien

\n\n

Stellen Sie sich vor: Sie haben einen Ordner mit Fotos IMG_001.jpg, IMG_002.jpg … Sie sollen sie ins Format 2025_01_15_001.jpg umbenennen. Von Hand – 10 Minuten mühsame Arbeit. Mit einem Skript – 0,2 Sekunden.

\n\n

Code

\n
#include <iostream>\n#include <filesystem>\n#include <regex>\n#include <string>\n\nnamespace fs = std::filesystem;\n\nint main() {\n    std::string dir_path = "./photos";\n    std::regex pattern(R"(IMG_(\\d+)\\.jpg)");\n    std::string prefix = "2025_01_15_";\n\n    for (auto &entry : fs::directory_iterator(dir_path)) {\n        std::string filename = entry.path().filename().string();\n        std::smatch match;\n\n        if (std::regex_match(filename, match, pattern)) {\n            std::string new_name = prefix + match[1].str() + ".jpg";\n            fs::rename(entry.path(), entry.path().parent_path() / new_name);\n            std::cout << "Umbenannt: " << filename << " -> " << new_name << "\\n";\n        }\n    }\n    return 0;\n}
\n\n

Dieses Beispiel zeigt, wie C++ Automatisierung mit std::filesystem und regulären Ausdrücken ein alltägliches Problem in wenigen Zeilen löst. Sie können es leicht an Ihre eigenen Muster anpassen.

\n\n

Beispiel 2: Log-Parsing und Fehlerzählung

\n\n

Angenommen, ein Server schreibt Logs im Format:

\n
2025-01-15 10:23:45 [ERROR] Datenbankverbindung fehlgeschlagen\n2025-01-15 10:23:46 [INFO] Wiederholung #1\n2025-01-15 10:23:47 [ERROR] Timeout überschritten
\n\n

Wir müssen eine Statistik erstellen: wie viele Fehler jedes Typs, und die Top 5 der häufigsten Meldungen ausgeben. Ein Bash-Einzeiler schafft das, aber bei Gigabytes an Logs ist C++ um ein Vielfaches schneller.

\n\n

Code

\n
#inc                

Blogs

Buchempfehlungen