Cita de: RevangelyonX en 5 Octubre 2012, 21:12 PMElektro Hacker supongo que lo confirmará.
Exacto xD
Como bien te ha dicho el amigo RevangelionX, no te funciona porque no estás expandiendo la variable para poder usarla en el FOR.
Pero aparte de eso, el parámetro "/R" del for es muy mala idea usarlo en casos como este, el for procesa los archivos ASS de la carpeta (Uno por uno), pero en el momento que uno de esos archivos es "prefijado" el for puede procesar ese nuevo archivo si el nuevo nombre del archivo está entre los que el For todavía no a procesado por el orden alfabético...
si tenemos el archivo "A" y "B", y el archivo "A" es renombrado a "C" antes de procesar el archivo "B" , el For procesará también el archivo "C" porque el FOR aún no ha llegado a esa letra alfabéticamente hablando, no se si me entiendes, asi que se volverá a "re-prefixear" ese archivo.., me ha pasado muchisimas veces en ocasiones parecidas...
Código (dos) [Seleccionar]
@Echo OFF
Setlocal enabledelayedexpansion
for /F "Tokens=*" %%i in ('Dir /B /S "*.ass"') do (
set "nom=%%i"
set prefix=!nom:~15,3!
set lex=!nom:~22,14!
set nombre=Capitulo !prefix! - !lex!
set ruta=!nom:~0,1!
copy "%%i" "!ruta!!nombre!"
)
pause&exit
Saludos