Ich habe ein Windows-Dateisystem, bei dem ein Problem in unserer Sicherungssoftware dazu geführt hat, dass Hunderte von Dateien umbenannt wurden.
Die Änderung sieht folgendermaßen aus:
„ABC.PDF“ -> „ABC.PDF.BAK“
Dies geschah bei einigen, aber nicht bei allen Dateien in einem Verzeichnis.
Ich würde solche Dateien gerne wieder auf den alten Namen umbenennen, allerdings soll das Skript Fälle ausgeben bzw. ignorieren, in denen dies nicht möglich ist, weil bereits eine "ABC.PDF" existiert.
Mit Batch-Skripten kenne ich mich überhaupt nicht aus, aber Powershell ist auch verfügbar.
Antwort1
In Powershell können Sie Folgendes tun:
$files = dir *.BAK
foreach($file in $files) {
Rename-Item $file $file.BaseName -ErrorAction Ignore
}
Es tritt nur dann ein Fehler auf, wenn diese Dateien nicht mehr vorhanden sind oder wenn Sie versuchen, eine Datei zu überschreiben.
Wenn Sie zuerst sehen möchten, was passiert, fügen Sie das Flag -WhatIf hinzu.