Füge den Ordnernamen am Anfang des Dateinamens hinzu - erhalte mehrere Umbenennungen


0

Ich habe die ausgezeichnete Antwort von dbenham auf die Frage verwendet, wie der Ordnername an den Anfang eines Dateinamens in einem Cmd-Skript gesetzt werden soll.

@echo off
pushd "Folder"
for /d %%D in (*) do (
  for %%F in ("%%~D\*") do (
    for %%P in ("%%F\..") do (
      ren "%%F" "%%~nxP_%%~nxF"
    )
  )
)
popd

Was ich finde ist, dass scheinbar zufällig (obwohl es wahrscheinlich nicht ist), manchmal das Skript mehrere untergeordnete Ordner durchläuft und korrekt umbenennt, aber dann zu einem Ordner gelangt, in dem es in einer Schleife hängen bleibt und den Ordnernamen wiederholt hinzufügt in die Datei hinein. Ich habe an diesem Wochenende 90.000 Dateien in 300 Ordnern umzubenennen. Kannst du die Ursache erraten?

PS: Gibt es eine maximale Anzahl von Dateien, die in jedem Ordner zulässig sind?


Dies kann hilfreich sein, um einen Verweis auf die ursprüngliche Frage hinzuzufügen, auf die Sie sich beziehen.
Geselle Geek

Möglicherweise haben Sie Junction-Ordner irgendwo in Ihrem Zielverzeichnis. Ich hatte ein Powershell-Skript, um alle Nicht-Junction-Dateien / -Ordner aufzulisten . Möglicherweise können Sie es optimieren, um nur Abzweigungen aufzulisten. Ansonsten werde ich es versuchen :)
Nixda

Ich habe Powershell (Windows 7 PC) geöffnet, das ich noch nie benutzt habe ... aber ich bekomme Ausführung von Skripten ist auf meinem System deaktiviert. Ich kann es nicht deaktivieren, da mein Registrierungsschlüssel gesperrt ist. :(
Flibble Wibble

Wenn jemand eine einfachere Lösung hat, bin ich sehr froh, jeden Ordner manuell durchzugehen. Ich habe gerade eine forfiles-Lösung ausprobiert, aber dies hat das gleiche Problem.
Flibble Wibble

nixda, vorausgesetzt ich habe Junction-Ordner, was würde ich dagegen tun?
Flibble Wibble
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.