Como mover archivos uno por uno a otra carpeta

Recurro a ustedes para que me ayuden con esta petición. Tengo almacenado en una carpeta por cantidad de archivos que deseo mover a otra carpeta, pero realizarlos ya sea por el orden que fueron creados. Desde el mas viejo hasta el mas reciénte o bien mover por nombres en la carpeta origen están creados así.

RM00001.exe

RM00002.exe

RM00003.exe

RM00050.exe

Debemos mover RM00001.exe que es el mas antiguo se procesa en otra carpeta y continuamos con el siguiente archivo(RM00002.exe)

Agradecido con la colaboración que me puedan brindar.

1 Respuesta

Respuesta
1

No entiendo muy bien la razón por la que puede interesarte que se muevan en un orden determinado, como no sea que después de mover el archivo quieras ejecutarlo (ya que parecen ejecutables) pero creo que lo que sigue podría valer:

@echo off
for /f "tokens=*" %%a in ('dir /b /on CarpetaOrigen\*.*') do (move "%%a" CarpetaDestino)

CarpetaOrigen y CarpetaDestino deberían cambiarse por los nombres de las carpetas correspondientes.

En este caso la opción /ON del comando DIR ordena alfanuméricamente. Si se quisiera ordenación por antigüedad podría sustituirse por /OD.

Dime si te sirve y si no fuera así cuéntame que problema te plantea para intentar resolverlo.

Gracias amigo por responder,

le explico que cada archivo que esta en la carpeta origen tiene información que me sirve para actualizar otro equipo es por ello que necesito moverlo a otra carpeta uno por uno. por el orden que fueron creados .o por por fecha o alfanumérico. Y de paso que al mover el archivo lo auto ejecute. El archivo movido es un .exe

Realize las pruebas con el código que usted me dio y al ejecutarlo me dice lo siguiente.

El sistema no puede hallar el archivo especificado

Ya cambie las rutas tanto de origen como la de destino.

Saludos,

Parece que el comando "move" no encuentra el archivo que figura en la variable %%a.

Es un poco inexplicable.

Te sugiero que, a modo de prueba, sustituyas

Move "%%a" CarpetaDestino

Por

Echo "%%a"

A ver si salen los nombres de los archivos en el orden correcto.

También puedes poner aquí el BAT completo para que le eche un vistazo.

le cambie move "%%a" CarpetaDestino por echo "%%a" y veo que recorre toda la lista de archivos de la carpeta origen.

aquí el código:

@echo off for /f "tokens=*" %%a in ('dir /b /on D:\NCLIENTE\balanza\*.*') do (move "%%a" D:\ENSAYO)

Saludos,

Creo que el problema está en la "situación" previa en el árbol de directorios.

Prueba con esto:

@echo off

for /f "tokens=*" %%a in ('dir /b /on D:\NCLIENTE\balanza\*.*') do (move D:\NCLIENTE\balanza\"%%a" D:\ENSAYO)

Aunque también podría valer esto:

@echo off
D:
cd \NCLIENTE\balanza
for /f "tokens=*" %%a in ('dir /b /on D:\NCLIENTE\balanza\*.*') do (move "%%a" D:\ENSAYO)

Por si el editor de la página hace alguna jugarreta (como la que hizo en tu caso al unir las dos líneas) quiero aclarar que el comando MOVE del primer caso debe ser:

move D:\NCLIENTE\balanza\"%%a" D:\ENSAYO

Cuéntame como va esto..

Buenos días, gracias por la colaboración realize el ensayo antes descrito, funciona pero me mueve todos los archivos de un solo tiro. y lastimosamente yo requiero que sea uno por uno. ya sea por antigüedad o por el orden en que fueron creados.

que me mueva uno al mover se ejecuta el .exe este es procesado una vez termine de procesarlo continuo moviendo otro ejecuto y así sucesivamente.

saludos,

Sí, eso ya estaba previsto.

Ahora lo que hay que hacer es meter en el DO del FOR todas las acciones que quieras que se realicen para cada archivo. Como es ejecutable creo que podría ser algo así:

@echo off
for /f "tokens=*" %%a in ('dir /b /on D:\NCLIENTE\balanza\*.*') do (

move D:\NCLIENTE\balanza\"%%a" D:\ENSAYO

"%%a"

)

Prueba así a ver si vale.

Hola, saludos

Realice la prueba me dice moviendo 1 archivo, pero cuando los busco en la carpeta destino no esta y cuando regreso la carpeta origen han desaparecido el resto de los archivos.

Gracias,

Espero que los tengas salvados en algún otro lado antes de hacer las pruebas.

No puedo entender que hayan desaparecido de las dos carpetas pero he detectado un error en lo que proponía. De todas formas creo que será mejor hacer una ejecución "paso a paso" para asegurar que las cosas van como deben

Prueba a quitar el "@echo off" para que te permita saber lo que está haciendo e introduce una pausa. Algo así:

rem @echo off

for /f "tokens=*" %%a in ('dir /b /on D:\NCLIENTE\balanza\*.*') do (
move D:\NCLIENTE\balanza\"%%a" D:\ENSAYO
D:\ENSAYO\"%%a"
Pause
)

A ver si ahora ya va correctamente.

Bravo, ahora si me mueve los archivos de una carpeta a otra, sobre todo de los mas antigua hasta los mas reciente. ya el tema de mover esta resuelto y me lo descomprime o se ejecuta en la carpeta NCLIENTE.

Agradecido por toda la ayuda prestada, en breve lo calificare o como dice puntuar.

Ohh bravo agradecido por la respuesta. respuesta que no encontré en otro foro.

muy muy agradecido.

el .Bat al ejecutarlo me mueve los archivos de una carpeta, uno por uno y por fecha de modificación o antigüedad y ala final me lo ejecuta en la carpeta que quería la NCLIENTE.

en breve estaré realizando otra pregunta que esta asociada a la ayuda que usted me ofreció

Mil Gracias.

Saludos,

que tenga un excelente dia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas