Ms-Dos - renombrar con for

 
Vista:

renombrar con for

Publicado por bat2man (1 intervención) el 05/12/2013 22:49:49
hola amigos tengo un problema quiero hacer un bat q me copie todos los archivos .txt de un directorio y su subdirectorios
y q despues me renombre los archivos originales con .BAK al final del nombre

mi codigo por el momento esta asi

@echo off
dir "%cd%\*.txt" /B /X /S > list.list
for /f "delims=;" %%i in (list.list) do xcopy "%%i" "c:\Respaldo"
for /f "delims=;" %%i in (list.list) do REN "%%i" "%%i.bak"
del list.list
pause

creo q el problema q tengo es al momento de renombrar los archivos originales el comando ren necesita como 2º parametro solo el nombre del archivo y no toda la ruta

lo estoy haciendo mal?
hay alguna otra forma?

gracias y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de A.H.H

renombrar con for

Publicado por A.H.H (216 intervenciones) el 07/12/2013 09:26:27
Hola prueba este .bat en el mismo directorio que tienes los archivos de texto, el bat busca dentro de los subdirectorios con la opción /R del for.

1
2
3
4
5
6
7
8
9
10
11
@echo off
IF NOT EXIST "%SYSTEMDRIVE%\Respaldo" MKDIR "%SYSTEMDRIVE%\Respaldo"
For /R %%A in (*.txt) DO IF EXIST %%A COPY "%%A" "%SYSTEMDRIVE%\Respaldo\%%~nxA"
FOR /R %%A in (*.txt) DO (if exist %%A SET RUTA=%%A&SET ARCHIVO=%%~nxA)&CALL :RENOMBRAR
PAUSE
:RENOMBRAR
SET ARCHIVO=%ARCHIVO%.bak
REN "%RUTA%" "%ARCHIVO%"
GOTO:EOF
 
pause


lo que hace nx de lante de la variable del for es quedarse solo con el nombre de archivo y la extensión quitando el resto de la ruta. SET ARCHIVO=%%~nxA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

renombrar con for

Publicado por itachi99 (4 intervenciones) el 12/12/2013 21:16:30
muchas gracias
acabo de probar y funciona bien
nunca se me hubiera ocurrido el modificador /R y tampoco sabia es de -nx antes de la variable

otra cosa saben de algun manual de batch de comandos con su sentencia y modificadores algo asi como el man de linux
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

renombrar con for

Publicado por carlos ortega (2 intervenciones) el 20/12/2013 17:17:55
Hola itachi99

Referente a esto, pueba con la siguiente orden: <tu_comando> /help
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar