Mover archivos por lotes a una carpeta consecutivas
Publicado por quique (3 intervenciones) el 04/05/2018 14:24:44
Buenos dias
llevo mas de una semana peleandome con un script en windows que quiero crear para mover muchos videos (con acentos, numeros y demas) que tengo en una serie de carpetas de forma que tenga una carpeta con 9 carpetas dentro y en cada una de estas carpetas haya 10 ficheros, esto es facil, con dos for lo tengo hecho
ahora viene lo complicado, tengo que seleccionar 10 ficheros de la ruta e irlos moviendo. se me ha ocurrido varias opciones, que paso a listar
Listo todo el contenido del directorio a un fichero (los parameteros que pongo son principalemente para que solo este el nombre del fichero y moverlo) (si se os ocurre alguna opcion para que se ordene como lo hace windows, es decir el 2 vaya despues del 1 y no del 10, pero esto es segundario jajaja))
Coger leer el fichero y moverlos a la carpeta correspondiente
el problema de esta opcion es que mueve TODO el contenido del fichero (tiene sentido, no le pones ningun filtro)
ahora viene lo complicado, seleccionar solo 10 archivos para moverlos
aqui me he vuelto loco
he ido probando un monton de opciones, pero no he sacado nada claro
Al leer todo el fichero en el bucle, no hace el bucle de 10 previo
otra opcion es crear un arhivo, leerlo y cuando llegue a los 10 salir del bucle, y al salir, creo otra vez el listado (ya que ha movido los 10 primeros) pero no funciona
cualquier cosilla, o consejo, aqui estoy
Adjunto un script donde se crean varios archivos dependiendo de la variable que le pases por consola y lo lista en el fichero
Un saludo
Quique_cortes
llevo mas de una semana peleandome con un script en windows que quiero crear para mover muchos videos (con acentos, numeros y demas) que tengo en una serie de carpetas de forma que tenga una carpeta con 9 carpetas dentro y en cada una de estas carpetas haya 10 ficheros, esto es facil, con dos for lo tengo hecho
1
2
3
4
5
6
for %%A in ($1_PRIMERO,$2_SEGUNDO,$3_TERCERO,$4_CUARTO,$5_QUINTO,$6_SEXTO,$7_SEPTIMO,$8_OCTAVO,$9_NOVENO) do (
md %%A
for /L %%B in (1,1,9) do (
md %%A\%%B
)
)
Listo todo el contenido del directorio a un fichero (los parameteros que pongo son principalemente para que solo este el nombre del fichero y moverlo) (si se os ocurre alguna opcion para que se ordene como lo hace windows, es decir el 2 vaya despues del 1 y no del 10, pero esto es segundario jajaja))
1
dir /b /On /oG >ZZZ_listado.txt
1
2
3
4
for /f "tokens=*" %%h in (ZZZ_listado.txt) do (
move "%%h" %%A\%%B
echo mueve el fichero %%h a la ruta %%A\%%B
)
ahora viene lo complicado, seleccionar solo 10 archivos para moverlos
aqui me he vuelto loco
he ido probando un monton de opciones, pero no he sacado nada claro
1
2
3
4
5
6
7
for /L %%q in (1,1,10) do (
dir /b /On /oG ZZZ_listado.txt
for /f "tokens=*" %%h in (ZZZ_listado.txt) do (
move "%%h" %%A\%%B
pause
)
)
1
2
3
4
5
6
7
8
9
10
for /L %%v in (1,1,10) do (
dir /A-D /b /On >ZZZ_listado.txt
for /f "tokens=*" %%h in (ZZZ_listado.txt) do (
move "%%h" %%A\%%B
set /a v=%%v+1
IF /I "%%v" EQU "10" (goto :fin)
echo "2 la variable q es %%v"
pause
)
)
cualquier cosilla, o consejo, aqui estoy
Adjunto un script donde se crean varios archivos dependiendo de la variable que le pases por consola y lo lista en el fichero
1
2
3
4
5
set /p v=numero de veces
For /L %%A in (1,1,%v%) DO (
touch "archivo "%%A".txt"
)
dir /b /On /oG >ZZZ_listado.txt
Un saludo
Quique_cortes
Valora esta pregunta
0