Auf der Suche nach dem schwarzen Softwareschwan

Gibt es Software, die es nicht gibt? Sprich: Habt ihr ein Anliegen, für das ihr vergeblich nach einem Programm gesucht habt? Nebst dieser Frage geht es im Blogpost auch noch um ein exotisches Windows-Hilfsprogramm.

Man würde meinen, dass es Programme für alles gibt – gerade bei Windows. Zwar ist Windows nicht mehr das Betriebssystem mit der grössten Verbreitung: 2017 wurde der jahrelange Dominator von Android überholt.

Trotzdem: Dieses Betriebssystem existiert seit 35 Jahren, und damit 23 Jahre länger als Android. Und Windows wird breiter eingesetzt, in Unternehmen, auf Servern, für professionelle Zwecke und zum Spass. Da würde man meinen, dass über die Jahre für jedes denkbare Problem eine Lösung in Form einer tollen Software entstanden ist.

Es gibt Apps für alles. Ausser für die Dinge, für die es keine Apps gibt

Doch es passiert mir immer mal wieder, dass ich auf Probleme stosse, auf die es keine überzeugende Software-Antwort gibt – sondern allenfalls wilde Hacks oder ein dubioses Shareware-Programm, das seit zwanzig Jahren nicht mehr aktualisiert worden ist. Leider habe ich die Fälle nicht dokumentiert – dabei wäre das eine tolle Serie für dieses Blog hier geworden. Doch wenn ihr Beispiele habt, freue ich mich über einen Hinweis in den Kommentaren.

Heute geht es um ein Anliegen, das so halb in diese Kategorie fällt. Ich habe zwar eine Software gefunden, die die Aufgabe ganz gut löst. Aber ich konnte mich des Eindrucks nicht ganz erwehren, dass neben mir und dem Entwickler das Programm höchstens noch von fünf bis zehn anderen Leuten benutzt wird.

Ausgangspunkt dieser Saga ist mein Ordnungsfimmel – der sich aber nur auf meine Datenhaltung, nicht aber auf mein Büro oder die anderen von mir behausten Gefilde in der physischen Welt erstreckt. In denen bin ich eher als Mensch mit Anflügen von Messietum bekannt.

Ordnung auf der Festplatte muss sein, bei n der Wohnung nicht

Ich glaube, der Unterschied liegt darin begründet, dass Ordnung in der realen Welt in aller Regel mit der Tätigkeit des Aufräumens einhergeht. Denn auch wenn inzwischen allerhand Roboter unsere Haushalte bevölkern und staubsaugen, wischen, Fenster putzen und den Rasen mähen, so gibt es noch keinen Helfer, der die Socken in die Wäschezeine (🇩🇪🇦🇹: Wäschebehälter), die gelesene Zeitung in den Altpapierbehälter, die herumliegenden Bücher ins Regal und die auf dem Schreibtisch platzierten pendenten Papiere auf einen schönen Stapel verfrachten würden. Die Arbeit muss man selbst tun. Und darauf habe ich nur bedingt Lust.

Doch in der digitalen Sphäre kann man Ordnung halten, ohne dass man sich ein Bein ausreissen müsste. Im Gegenteil: Man kann es so einfädeln, dass die Ordnung quasi automatisch entsteht. Im Beitrag Eine artistische Windows-App für Ordnungsfanatiker habe ich dazu das Programm File Juggler vorgestellt, das mir viele manuelle Handgriffe abnimmt.

Per Script und Regex Dateien benennen

Bei den richtigen Betriebssystemen – also jenen, die im Gegensatz zu iOS auch eine Befehlszeile anzubieten haben – kann man sich auch Scripte basteln. Und es gibt Automatisierungshelfer, die einem keine Programmierungsfähigkeiten abverlangen, zum Beispiel Robotask, AutoHotKey und AutoMate. (Manchen ist vielleicht auch WinAutomation ein Begriff: Das Programm und sein Hersteller ist am 19. Mai 2020 von Microsoft gekauft worden.)

Zu meinem Ordnungsfimmel gehört, dass ich Dateien gerne einheitlich benenne. Darüber habe ich mich schon im Beitrag Wie sollten Dateien richtig heissen? ausgelassen. Das tue ich auch, wenn ich Dateien archiviere – zum Beispiel die Belege aus dem Online-Banking oder, wie hier erwähnt, die PDF-Faksimiles meiner Zeitungsartikel.

Aber wie gesagt: Meine Ambition ist, richtig benannte Dateien auf meiner Festplatte zu haben, ohne dass ich selbst Hand anlegen müsste. Darum die Frage: Gibt es ein Programm, das Dateien via Befehlszeile richtig benennt – am besten mithilfe regulärer Ausdrücke?

Perl? Perl!

Und ja: Die echten Profis unter euch werden nun sagen, dass man das am besten via Perl tut. Oder meinetwegen mit Powershell. Doch leider arbeite ich damit nicht täglich – obwohl ich es nach Kräften versucht habe (siehe Ein etwas kraftloser Einstieg in die Powershell).

Darum war meine Anforderung ein Programm, das man über die Befehlszeile benutzen und für Umbenennungen mit regulären Ausdrücken verwenden kann.

Und siehe da: Das ist eine so exotische Idee, dass ich ausführlich googeln und diverse Kandidaten verwerfen musste, um etwas Brauchbares zu finden. Denn Umbenennungsprogramme gibt es zwar wie Sand am Meer – mein Favorit ist Ant Renamer (Dateinamensfragen klären) – aber die sind nur über die grafische Benutzeroberfläche, nicht aber am Prompt zu verwenden.

Geheimtipp: RenameRegex!

Ich bin schliesslich bei RenameRegex von Nic Jansma (RR.exe bei Github) gelandet. Das macht genau das, was ich brauche. Und es lässt sich problemlos in eine Batchdatei einbauen.

Die Verwendung ist simpel: Man ruft das Programm auf, filtert über einen Platzhalter die zu bearbeitenden Dateien und übergibt dann in Anführungszeichen zwei Ausdrücke: Der erste formuliert die Suchanforderung, der zweite gibt die Ersetzung vor.

RR.exe * "Suchen" "Ersetzen"

In meinem oben erwähnten Beispiel will ich eine Datei, die ta_20200618_0_0_27.pdf heisst, in 200618 TA Seite 27.pdf umbenennen. Dazu rufe ich RR.exe mit folgenden Parametern auf:

"C:\Program Files\RR\RR.exe" ta_*.pdf "ta_\d{2}(\d{6})_(\d_){2}(\d+)" "$1 TA Seite $3"

Das funktioniert wunderbar und lässt sich problemlos automatisieren.

Reguläre Ausdrücke vorab testen

Zu beachten ist, dass man RR.exe mit gültigen regulären Ausdrücken füttern muss, weil sonst eine verwirrliche Fehlermeldung erscheint (Unbehandelte Ausnahme: System.ArgumentException).

Ein heisser Tipp: Regex Tester zeigt nicht nur, ob ein regulärer Ausdruck das tut, was er sollte: Er visualisiert sogar, was er tut.

Die Ausdrücke testet man daher am besten mit einem der vielen Online-Validatoren. Mir gefällt am besten Regex tester, weil der auch eine schöne grafische Analyse auswirft. Aber auch Regular Expression Tester oder Regular Expression 101 erfüllen den Zweck.

Beitragsbild: A black swan from Vacha reservoir, Bulgaria; Kiril Krastev/Wikimedia, (CC BY-SA 3.0)

Kommentar verfassen