============================================================
TOPTORIALS OFFICE - PowerShell 7 Grundkurs
Teil 008: Text in Dateinamen ersetzen
============================================================

Autor: Chris
Webseite: https://www.toptorials.com
YouTube: https://www.youtube.com/@TOPTORIALS-OFFICE
Skriptversion: Grundkurs 1.0
Stand dieser Anleitung: 30.08.2026


WICHTIG VOR DEM ERSTEN START
============================================================

Bitte zuerst mit Kopien unwichtiger Dateien arbeiten.

Für den Testmodus muss _test im tatsächlichen Dateinamen der
Starter-Batchdatei stehen. Der Hinweis im Kommentar der Datei
oder der Anzeigename einer Verknüpfung genügt dafür nicht.

Vor der Eingabe des Suchtextes muss im Fenster stehen:

Testmodus: JA

Ohne _test wird der Echtmodus gestartet. Die tatsächliche
Umbenennung erfolgt dann erst nach der Bestätigung mit JA.

Die Ersetzung betrifft den vollständigen Dateinamen und damit
auch die Dateiendung. Eine geänderte Endung wandelt den Inhalt
der Datei NICHT in ein anderes Dateiformat um.

Diese Skripte erstellen keine Sicherung und besitzen keine
automatische Rückgängig-Funktion.


INHALT
============================================================

01. Worum geht es?
02. Voraussetzungen
03. Ordner und Dateien
04. Schnellstart: einfache Variante
05. SendTo-Variante einrichten und verwenden
06. Testmodus und Echtmodus
07. Suchtext und Ersatztext
08. Namenskonflikte und automatische Nummerierung
09. Welche Dateien werden verarbeitet?
10. Ablauf und Bildschirmausgabe
11. Aufgaben der Starter-Batchdateien
12. Direkter Aufruf mit PowerShell 7
13. Häufige Fragen und Fehler
14. Grenzen und Sicherheit
15. Kurze Zusammenfassung


01. WORUM GEHT ES?
============================================================

Mit diesen Skripten könnt ihr einen Text in mehreren Dateinamen
ersetzen oder entfernen.

Beispiel:

Datei:       MeinBeispiel.txt
Suchtext:    Mein
Ersatztext:  Dein
Ergebnis:    DeinBeispiel.txt

Wenn ihr beim Ersatztext nur Enter drückt, wird der Suchtext
entfernt:

Datei:       MeinBeispiel.txt
Suchtext:    Mein
Ersatztext:  leer lassen
Ergebnis:    Beispiel.txt

Diese Ergebnisse setzen voraus, dass der gewünschte Zielname
noch frei ist. Bei Namenskonflikten wird eine Nummer ergänzt.

Es gibt zwei Varianten:

- 01_Einfach:
  Bearbeitet beim Start über die Batchdatei die Dateien im
  Ordner dieser Starter-Batchdatei.

- 02_SendTo_Text_ersetzen:
  Bearbeitet ausgewählte Dateien sowie die direkt enthaltenen
  Dateien ausgewählter Ordner über das Menü "Senden an".

Beide Varianten arbeiten ohne rekursive Ordnersuche.
Die Dateien bleiben in ihren jeweiligen Ordnern.
Ordnernamen und Dateiinhalte werden nicht verändert.


02. VORAUSSETZUNGEN
============================================================

- Windows für die Starter-Batchdateien und das SendTo-Menü.
- Installiertes PowerShell 7.
- PowerShell 7 muss über den Befehl pwsh erreichbar sein.
- Ausreichende Rechte zum Umbenennen der betroffenen Dateien.
- PowerShell-Skript und passender Starter liegen jeweils
  gemeinsam in einem Ordner.

Mit diesem Befehl könnt ihr die verfügbare Version prüfen:

pwsh --version

Die Skripte benötigen mindestens PowerShell 7.0.
Windows PowerShell 5.1 beziehungsweise powershell.exe ist
für diese Skripte kein gleichwertiger Ersatz.

Startet die Skripte für die normalen Übungen über die
mitgelieferten Starter-Batchdateien.


03. ORDNER UND DATEIEN
============================================================

Der vorgesehene Hauptordner lautet:

C:\TOPTORIALS_CODE\010_PowerShell_7_Grundkurs\008_Text_in_Dateinamen_ersetzen

Diese README.txt kann im Hauptordner liegen.


Variante 1: einfacher Ordnerbetrieb
------------------------------------------------------------

Unterordner:

01_Einfach

PowerShell-Datei:

008_Text_in_Dateinamen_ersetzen.ps1

Starter für den Testmodus:

008_text_in_dateinamen_ersetzen_starter_batch_test.bat

Startername für den Echtmodus:

008_text_in_dateinamen_ersetzen_starter_batch.bat


Variante 2: SendTo
------------------------------------------------------------

Unterordner:

02_SendTo_Text_ersetzen

PowerShell-Datei:

008_SendTo_Text_in_Dateinamen_ersetzen.ps1

Starter für den Testmodus:

008_sendto_text_in_dateinamen_ersetzen_starter_batch_test.bat

Startername für den Echtmodus:

008_sendto_text_in_dateinamen_ersetzen_starter_batch.bat


Hinweise zu den Dateinamen
------------------------------------------------------------

Die beiden genannten Starternamen pro Variante bezeichnen
denselben Starter vor beziehungsweise nach dem Umbenennen.
Es werden nicht zwingend zwei separate Starter benötigt.

Wenn ein Starter bereits ohne _test vorliegt, ergänzt diesen
Zusatz vor dem ersten Probelauf.

Die PowerShell-Dateinamen müssen exakt zu den Namen passen,
die im jeweiligen Starter hinter -File stehen.

Zusätze wie (1) oder (2), die beispielsweise beim erneuten
Herunterladen entstehen können, gehören nicht zu den oben
genannten Skriptnamen.


04. SCHNELLSTART: EINFACHE VARIANTE
============================================================

1. Legt einen Ordner mit Kopien unwichtiger Testdateien an.

   Beispiel für einen eigenen Testordner:

   C:\TOPTORIALS_CODE\1000_TESTBEREICH\008_Text_in_Dateinamen_ersetzen

2. Kopiert nur das PowerShell-Skript der einfachen Variante
   und seinen Starter gemeinsam in diesen Testordner.

3. Prüft den Namen der Starter-Batchdatei. Für den Testlauf:

   008_text_in_dateinamen_ersetzen_starter_batch_test.bat

4. Startet diese Batchdatei per Doppelklick.

5. Prüft die Anzeige:

   Testmodus: JA

6. Gebt den Suchtext ein, beispielsweise:

   Mein

7. Gebt den Ersatztext ein, beispielsweise:

   Dein

   Zum Entfernen des Suchtextes lasst die zweite Eingabe leer
   und drückt nur Enter.

8. Prüft die ausgegebenen Zeilen QUELLE und ZIEL.

9. Im Testmodus werden keine Dateien umbenannt.
   Die Batchdatei wartet anschließend auf einen Tastendruck.

10. Wenn die Vorschau stimmt, entfernt _test aus dem Namen
    der Starter-Batchdatei.

11. Startet den Starter erneut und gebt dieselben gewünschten
    Such- und Ersatztexte ein.

12. Kontrolliert die neue Vorschau. Bestätigt den Echtlauf
    nur bei korrekten Zielen mit JA.

Wichtig:
Die einfache Variante bearbeitet den Ordner des Starters,
nicht automatisch einen anderen gerade geöffneten
Explorer-Ordner.

Die README.txt ist eine normale Textdatei und nicht von der
Verarbeitung ausgeschlossen. Lasst sie deshalb möglichst im
Hauptordner des Kurspakets und kopiert sie nicht mit in den
zu bearbeitenden Testordner.


05. SENDTO-VARIANTE EINRICHTEN UND VERWENDEN
============================================================

Bei SendTo bleiben PowerShell-Skript und Starter gemeinsam
an ihrem festen Speicherort:

C:\TOPTORIALS_CODE\010_PowerShell_7_Grundkurs\008_Text_in_Dateinamen_ersetzen\02_SendTo_Text_ersetzen


Verknüpfung einrichten
------------------------------------------------------------

1. Prüft, dass der Original-Starter für den Probelauf so heißt:

   008_sendto_text_in_dateinamen_ersetzen_starter_batch_test.bat

2. Drückt Windows + R.

3. Gebt Folgendes ein:

   shell:sendto

4. Bestätigt mit Enter.

5. Legt in dem geöffneten Ordner eine Verknüpfung zur
   Starter-Batchdatei an.

   Die Original-Batchdatei und die PowerShell-Datei bleiben
   gemeinsam im oben genannten Kursordner.

6. Gebt der Verknüpfung einen verständlichen Namen, etwa:

   Text in Dateinamen ersetzen - TEST


SendTo verwenden
------------------------------------------------------------

1. Markiert im Windows-Explorer die gewünschten Dateien
   und/oder Ordner.

2. Wählt im Kontextmenü "Senden an" und anschließend eure
   eingerichtete Verknüpfung.

3. Prüft im Fenster die Anzeige "Testmodus: JA".

4. Gebt Suchtext und Ersatztext ein.

5. Kontrolliert die geplanten Änderungen.

Bei einer direkt übergebenen Datei wird diese Datei geprüft.
Bei einem übergebenen Ordner werden dessen direkt enthaltene
Dateien erfasst. Tiefere Unterordner bleiben unberücksichtigt.

Wenn dieselbe Datei direkt und gleichzeitig über ihren Ordner
erfasst wurde, wird sie nur einmal verarbeitet.


Auf Echtmodus umstellen
------------------------------------------------------------

Entfernt _test aus dem Namen der ORIGINAL-Starter-Batchdatei.

Prüft anschließend das Ziel der SendTo-Verknüpfung.
Aktualisiert oder erstellt die Verknüpfung bei Bedarf neu,
damit sie auf den umbenannten Starter zeigt.

Der Name der Verknüpfung allein steuert den Testmodus NICHT.

Nach dem erneuten Aufruf erscheint "Testmodus: NEIN".
Die tatsächliche Umbenennung muss zusätzlich mit JA bestätigt
werden.


06. TESTMODUS UND ECHTMODUS
============================================================

Testmodus:
------------------------------------------------------------

- _test steht im Namen des Starters.
- Der Starter übergibt -Test an PowerShell.
- Das Skript zeigt "Testmodus: JA".
- Suchtext und Ersatztext werden abgefragt.
- Die Umbenennungen werden geplant und angezeigt.
- Es werden keine Dateien umbenannt.


Echtmodus:
------------------------------------------------------------

- _test fehlt im Namen des Starters.
- Der Starter übergibt keinen -Test-Schalter.
- Das Skript zeigt "Testmodus: NEIN".
- Suchtext und Ersatztext werden abgefragt.
- Die Umbenennungen werden geplant und angezeigt.
- Bei mindestens einem Plan erscheint die Sicherheitsabfrage.
- Erst nach der Eingabe JA werden die Pläne ausgeführt.

Bei der Bestätigung wird Groß- und Kleinschreibung ignoriert.
Leerzeichen am Anfang oder Ende der Bestätigung werden entfernt.
Eine andere Antwort bricht vor der Umbenennung ab.

Die Vorschau wird nicht für einen späteren Start gespeichert.
Beim erneuten Aufruf entstehen aus den dann vorhandenen Dateien
neue Pläne. Deshalb auch die Vorschau des Echtlaufs prüfen.


07. SUCHTEXT UND ERSATZTEXT
============================================================

Alle passenden Vorkommen:
------------------------------------------------------------

Es werden alle Vorkommen des Suchtextes ersetzt, nicht nur
die erste Fundstelle oder der Anfang des Dateinamens.

Datei:       Alt_alt_Bericht.txt
Suchtext:    alt
Ersatztext:  Neu
Ergebnis:    Neu_Neu_Bericht.txt


Groß- und Kleinschreibung:
------------------------------------------------------------

Die Suche ignoriert Groß- und Kleinschreibung.
Der Ersatztext wird in der eingegebenen Schreibweise verwendet.


Leere Eingaben:
------------------------------------------------------------

Leerer Suchtext:
Der Durchlauf wird abgebrochen.

Leerer Ersatztext:
Der gefundene Suchtext wird entfernt.

Zum Entfernen keine Anführungszeichen eingeben.
Drückt bei der zweiten Frage einfach Enter.

Ein tatsächlich eingegebenes Leerzeichen ist nicht leer.
Suchtext und Ersatztext werden nicht automatisch getrimmt.


Wörtliche Texte statt Regex-Ersetzung:
------------------------------------------------------------

Die eigentliche Ersetzung verwendet String.Replace().
Der Suchtext ist kein regulärer Ausdruck.

Ein Punkt wird als Punkt behandelt.
Eingegebene Dollarzeichen im Ersatztext bleiben wörtlich.
$1 oder $& haben hier keine besondere Ersatzfunktion.

Die kurze Prüfung auf unzulässige Zeichen im Ersatztext
verwendet dagegen einen regulären Ausdruck.


Die Dateiendung gehört zum Namen:
------------------------------------------------------------

Datei:       Bericht.TXT
Suchtext:    .txt
Ersatztext:  .md
Ergebnis:    Bericht.md

Der Inhalt wird dabei nicht konvertiert.
Ändert Dateiendungen nur, wenn ihr die Folgen kennt.


Leerer Basisname:
------------------------------------------------------------

Das Skript prüft zusätzlich den Namen ohne die letzte Endung.
Wird dieser Basisname vollständig entfernt, verwendet es
"Unbenannt" zusammen mit der ursprünglichen Dateiendung.

Datei:       Beispiel.txt
Suchtext:    Beispiel
Ersatztext:  leer lassen
Ergebnis:    Unbenannt.txt

Bei einem belegten Zielnamen wird auch hier eine Nummer ergänzt.


08. NAMENSKONFLIKTE UND AUTOMATISCHE NUMMERIERUNG
============================================================

Die Funktion Get-FreierZielpfad prüft zuerst den gewünschten
Zielnamen. Ist dieser belegt, sucht sie einen freien Namen
mit _001, _002 und weiteren Nummern vor der Dateiendung.


Beispiel 1: vorhandener Zielname
------------------------------------------------------------

Im Ordner liegen:

MeinBeispiel.txt
Beispiel.txt

Suchtext:    Mein
Ersatztext:  leer lassen

Der gewünschte Name Beispiel.txt ist bereits vorhanden.
Wenn Beispiel_001.txt frei ist, lautet das Ergebnis:

MeinBeispiel.txt wird zu Beispiel_001.txt

Die vorhandene Datei Beispiel.txt bleibt unverändert.


Beispiel 2: _001 entfernen, Ziel ist frei
------------------------------------------------------------

Im Ordner liegt:

Beispiel_001.txt

Beispiel.txt ist noch nicht vorhanden.

Suchtext:    _001
Ersatztext:  leer lassen

Ergebnis:

Beispiel_001.txt wird zu Beispiel.txt


Beispiel 3: _001 entfernen, Ziel ist belegt
------------------------------------------------------------

Im Ordner liegen:

Beispiel.txt
Beispiel_001.txt

Suchtext:    _001
Ersatztext:  leer lassen

Beispiel.txt ist belegt. Auch Beispiel_001.txt gilt während
der Nummerierung als belegt, denn es ist noch die Quelldatei.

Wenn Beispiel_002.txt frei ist, lautet das Ergebnis:

Beispiel_001.txt wird zu Beispiel_002.txt

Ist auch _002 belegt, wird weitergezählt.

Das ist beabsichtigt: Das Entfernen einer Nummer garantiert
keinen Namen ohne Nummer, wenn dieser bereits vergeben ist.


Weitere Regeln:
------------------------------------------------------------

- Die Nummer wird mit mindestens drei Ziffern formatiert.
  Nach _999 kann beispielsweise _1000 folgen.

- Die Nummerierung setzt am gewünschten neuen Namen an.
  Sie ist keine allgemeine Neunummerierung aller Dateien.

- Bereits geplante Zielpfade werden ebenfalls reserviert.
  Zwei Pläne können daher nicht denselben Zielpfad erhalten.

- Die Dateien werden vor der Planung nach ihrem vollständigen
  Pfad sortiert.

- Noch vorhandene Quelldateien zählen als belegt, auch wenn
  sie später in demselben Durchlauf umbenannt werden sollen.

- Eine reine Änderung der Groß- und Kleinschreibung wird
  gesondert berücksichtigt. Der eigene Quellpfad ist nur beim
  ersten Kandidaten ohne zusätzliche Nummer eine Ausnahme.


09. WELCHE DATEIEN WERDEN VERARBEITET?
============================================================

Ausgeschlossene ursprüngliche Dateiendungen:

.bat
.cmd
.ps1
.py
.log

Die Prüfung ignoriert Groß- und Kleinschreibung.

Weitere Regeln:

- Nur Dateien werden umbenannt, keine Ordner.
- Die Ordnersuche ist nicht rekursiv.
- Versteckte Dateien werden bei der Ordnerabfrage ohne -Force
  nicht mit einbezogen.
- Dateien ohne tatsächliche Namensänderung werden übersprungen.
- Doppelte SendTo-Erfassungen werden nur einmal berücksichtigt.
- Dateien bleiben im bisherigen Ordner.

Die Ausschlussliste schützt keine beliebigen Dokumente:
.txt-Dateien, also auch eine README.txt im bearbeiteten Ordner,
sind grundsätzlich Teil der Verarbeitung.


10. ABLAUF UND BILDSCHIRMAUSGABE
============================================================

Die Skripte trennen Planung und Ausführung:

1. Modus anzeigen und Texte abfragen.
2. Dateien sammeln.
3. Ausschlüsse und neue Namen prüfen.
4. Freie Zielpfade ermitteln und reservieren.
5. Quelle und Ziel als Umbenennungspläne speichern.
6. Die gesamte Vorschau anzeigen.
7. Im Echtmodus nach JA die gespeicherten Pläne ausführen.
8. Ergebnis ausgeben.

Beispiel für eine Vorschau:

QUELLE: C:\Test\MeinBeispiel.txt
ZIEL:   C:\Test\Beispiel_001.txt

Die Vorschau erscheint auch vor einem echten Durchlauf.

Weitere typische Meldungen:

ÜBERSPRUNGEN: Beispiel.txt - keine Änderung
ÜBERSPRUNGEN: Hilfsskript.ps1 - ausgeschlossene Endung

Vor der Ausführung erscheinen die Anzahl geplanter
Umbenennungen und die bisherige Fehlerzahl.

Am Ende des Echtlaufs werden tatsächlich umbenannte Dateien,
übersprungene Dateien und Fehler ausgegeben.
Im Testmodus bestätigt das Skript stattdessen zusätzlich,
dass nichts umbenannt wurde.

Doppelte SendTo-Erfassungen werden ohne eigenen zusätzlichen
Übersprungen-Zähler verworfen.

Diese Grundkurs-Version zeigt die Ergebnisse im Fenster an.
Sie erstellt keine Logdatei und kopiert nichts automatisch
in die Zwischenablage.


11. AUFGABEN DER STARTER-BATCHDATEIEN
============================================================

Die Starter übernehmen folgende Aufgaben:

- chcp 65001 stellt die Konsolen-Codepage auf UTF-8 um.
- cd /d "%~dp0" wechselt in den Ordner der Batchdatei.
- %~n0 liefert den Namen der Batchdatei ohne Pfad und Endung.
- find /i "_test" prüft, ob der Testzusatz enthalten ist.
- pwsh startet PowerShell 7.
- -NoProfile startet ohne persönliche PowerShell-Profildateien.
- -File gibt das auszuführende PowerShell-Skript an.
- -Test aktiviert gegebenenfalls den Testmodus.
- %* reicht beim SendTo-Starter die übergebenen Argumente weiter.
- pause hält das Fenster nach dem Skriptlauf offen.

-ExecutionPolicy Bypass betrifft die Ausführungsrichtlinie
der gestarteten PowerShell-Sitzung. Es erteilt keine zusätzlichen
Datei- oder Administratorrechte.

Die Starter verarbeiten keine Dateinamen selbst.
Die eigentliche Planung und Umbenennung erfolgt in PowerShell.


12. DIREKTER AUFRUF MIT POWERSHELL 7
============================================================

Optional könnt ihr die Skripte ohne Starter aufrufen.

Einfache Variante im Testmodus:

pwsh -NoProfile -File "C:\Pfad\008_Text_in_Dateinamen_ersetzen.ps1" -Test

Wichtig:
Bei diesem direkten Aufruf wird der aktuelle Arbeitsordner
verarbeitet, nicht automatisch der Speicherort der PS1-Datei.
Wechselt daher vorher bewusst in den gewünschten Testordner.

SendTo-Variante im Testmodus:

pwsh -NoProfile -File "C:\Pfad\008_SendTo_Text_in_Dateinamen_ersetzen.ps1" -Test "C:\Test\MeinBeispiel.txt" "C:\WeitererTestordner"

Ersetzt die Beispielpfade durch eure tatsächlichen Pfade.

Bei direkten Aufrufen entscheidet der Schalter -Test über den
Testmodus. Ein _test im Dateinamen der PS1-Datei schaltet ihn
nicht automatisch ein.

Ohne -Test ist der Aufruf ein Echtlauf mit JA-Bestätigung.
Für die Grundkurs-Übungen sind die Starter der vorgesehene Weg.


13. HÄUFIGE FRAGEN UND FEHLER
============================================================

"pwsh" wird nicht gefunden.
------------------------------------------------------------

PowerShell 7 ist nicht installiert oder nicht über PATH
erreichbar. Prüft zunächst:

pwsh --version

Öffnet nach einer Installation ein neues Konsolenfenster.


Das PowerShell-Skript wird nicht gefunden.
------------------------------------------------------------

Prüft, ob Starter und PowerShell-Skript im selben Ordner liegen.
Vergleicht den tatsächlichen PS1-Dateinamen mit dem Namen
hinter -File im Starter.

Achtet auf ungewollte Zusätze wie (1), (2) oder eine doppelte
Dateiendung wie .ps1.txt.


Der Testmodus ist trotz "TEST" in der Verknüpfung aus.
------------------------------------------------------------

Entscheidend ist _test im tatsächlichen Namen der Batchdatei.
Der Anzeigename der Verknüpfung und Kommentarzeilen sind dafür
nicht maßgeblich.


Die SendTo-Verknüpfung funktioniert nach dem Umbenennen nicht.
------------------------------------------------------------

Prüft das Ziel der Verknüpfung. Es muss auf den aktuellen
Namen der Original-Batchdatei zeigen.


Beim direkten Start der SendTo-Version passiert nichts.
------------------------------------------------------------

Ohne übergebene Pfade beendet sich diese Variante mit einem
Hinweis. Verwendet die SendTo-Verknüpfung oder übergebt bei
einem direkten Aufruf mindestens einen Datei- oder Ordnerpfad.


Eine Datei wird nicht geändert.
------------------------------------------------------------

Mögliche Gründe:

- Die ursprüngliche Endung ist ausgeschlossen.
- Die Ersetzung ergibt exakt denselben Dateinamen.
- Die Datei liegt in einem tieferen Unterordner.
- Die Datei ist versteckt und fehlt in der Ordnerabfrage.
- Die Datei wurde bereits über einen anderen Auswahlpfad erfasst.


Beim Entfernen von _001 entsteht _002.
------------------------------------------------------------

Der Zielname ohne Nummer ist bereits belegt.
Der eigene Quellname mit _001 ist während der Nummerierung
ebenfalls belegt. Deshalb wird der nächste freie Name gesucht.
Die Einzelheiten stehen in Abschnitt 08.


Der Ersatztext enthält unzulässige Zeichen.
------------------------------------------------------------

Die kurze Eingabeprüfung weist unter anderem diese Zeichen ab:

< > : " / \ | ? *

Außerdem werden bestimmte Steuerzeichen zurückgewiesen.
In diesem Fall endet der Durchlauf ohne Änderungen.

Gebt nur den Text ein, der Teil des Dateinamens werden soll,
keinen vollständigen Zielpfad.


Ein Zielname ist ungültig.
------------------------------------------------------------

Ein ausschließlich aus Leerzeichen bestehender Zielname
oder ein abschließender Punkt beziehungsweise ein abschließendes
Leerzeichen wird nicht akzeptiert.

Die Grundkurs-Version prüft nicht sämtliche Windows-Namensregeln
vorab. Reservierte Gerätenamen, zu lange Pfade oder weitere
Dateisystemeinschränkungen können erst beim Umbenennen auffallen.


"Das geplante Ziel ist inzwischen belegt."
------------------------------------------------------------

Zwischen Planung und Ausführung wurde der Zielpfad anderweitig
belegt. Das Skript meldet für diese Datei einen Fehler.

Es sucht während der Ausführung nicht nach einer neuen Nummer,
sondern hält sich an die zuvor angezeigten Pläne.


Eine Datei lässt sich nicht umbenennen.
------------------------------------------------------------

Mögliche Ursachen sind fehlende Rechte, Dateisperren durch
andere Programme, ungültige Namen oder ein schreibgeschützter
Datenträger.

Lest die Fehlermeldung. Andere Pläne können trotzdem bereits
ausgeführt worden sein oder anschließend ausgeführt werden.


14. GRENZEN UND SICHERHEIT
============================================================

- Vor echten Änderungen eine aktuelle Datensicherung anlegen.
- Zuerst den Testmodus mit unwichtigen Dateikopien verwenden.
- Nur die tatsächlich benötigten Dateien und Ordner auswählen.
- Keine Laufwerkswurzeln oder großen Systemordner für Übungen
  auswählen. Die Grundkurs-Version hat dafür keinen eigenen
  besonderen Ausschluss.
- Während eines Durchlaufs die betroffenen Dateien möglichst
  nicht mit anderen Programmen umbenennen oder verändern.
- Die Vorschau ist keine Garantie, dass Windows jede geplante
  Umbenennung anschließend zulässt.
- Die Änderungen sind keine gemeinsame Transaktion:
  Bei einem Fehler werden bereits erfolgreiche Umbenennungen
  nicht automatisch zurückgenommen.
- Ein erneuter Start berechnet die Namen neu. Abhängig vom
  Such- und Ersatztext können dadurch weitere Änderungen
  entstehen. Vor jedem Echtlauf erneut die Vorschau prüfen.
- Die ursprünglichen Namen werden nicht separat gespeichert.
  Ein einfaches Vertauschen von Suchtext und Ersatztext ist
  keine zuverlässige Rückgängig-Funktion.
- Es gibt keine automatische Sicherung, Logdatei oder
  Zwischenablageausgabe.

Die Skripte sind Lernbeispiele für den PowerShell-7-Grundkurs.
Prüft sie vor dem Einsatz mit euren eigenen Dateien.
Die Nutzung erfolgt auf eigene Verantwortung.


15. KURZE ZUSAMMENFASSUNG
============================================================

Suchtext eingeben.
Ersatztext eingeben oder zum Entfernen leer lassen.
Vorschau kontrollieren.

Mit _test im Namen des Starters:
Nur planen und anzeigen.

Ohne _test:
Nach JA die geplanten Umbenennungen ausführen.

Namenskonflikte:
Freie Namen mit _001, _002 und weiteren Nummern verwenden.

Einfache Variante:
Dateien im Ordner der Starter-Batchdatei bearbeiten.

SendTo-Variante:
Ausgewählte Dateien und direkte Inhalte ausgewählter Ordner
bearbeiten.

Keine rekursive Verarbeitung.
Keine Änderung von Ordnernamen oder Dateiinhalten.
Die Dateiendung kann durch die Textersetzung verändert werden.


Viel Spaß beim Lernen und Ausprobieren!

Chris
TOPTORIALS OFFICE

