He usado la excelente respuesta de dbenham a la pregunta de cómo agregar el nombre de la carpeta al comienzo de un nombre de archivo en un script cmd.
@echo off
pushd "Folder"
for /d %%D in (*) do (
for %%F in ("%%~D\*") do (
for %%P in ("%%F\..") do (
ren "%%F" "%%~nxP_%%~nxF"
)
)
)
popd
Lo que encuentro es que aparentemente al azar (aunque probablemente no lo sea) a veces el script se ejecutará a través de varias carpetas secundarias y cambiará de nombre correctamente, pero luego llegará a una carpeta donde se atasca en un bucle y comienza a agregar el nombre de la carpeta repetidamente al archivo dentro. Tengo 90,000 archivos en 300 carpetas para renombrar este fin de semana. ¿Alguna posibilidad de adivinar la causa?
PD: ¿Hay un número máximo de archivos que sean aceptables en cada carpeta?
podría ayudar a agregar una referencia a la pregunta original a la que se refiere.
—
Journeyman Geek
Tal vez tenga carpetas de unión en algún lugar de su directorio de destino. Yo tenía un script de PowerShell para listar todos los no-unión archivos / carpetas. Tal vez pueda ajustarlo para enumerar solo las uniones. De lo contrario, lo intentaré :)
—
nixda
Abrí PowerShell (PC con Windows 7) que nunca había usado antes ... pero obtengo que la ejecución de scripts está deshabilitada en mi sistema. No puedo desactivarlo ya que mi clave de registro está bloqueada. :(
—
Flibble Wibble
Si alguien tiene una solución más simple, estoy muy feliz de revisar cada carpeta manualmente. Acabo de probar una solución de archivos pero esto tiene el mismo problema.
—
Flibble Wibble
nixda, suponiendo que tenga carpetas de unión, ¿qué haría al respecto?
—
Flibble Wibble