Ms-Dos - Ayuda con consulta copiar ficheros a N carpetas

 
Vista:

Ayuda con consulta copiar ficheros a N carpetas

Publicado por Jorge (1 intervención) el 26/02/2023 08:39:26
Buenos días, quisiera saber si me pueden ayudar con una consulta que necesito hacer en un bat.


Imaginemos que tengo una carpeta con 3000 archivos y tengo 10 carpetas distintas.

Necesito un bat que lea los archivos que hay en esa carpeta con 3000 ficheros y mueva 300 archivos a cada carpeta.

Bueno podría necesitar o bien mover 300 o bien indicarle cuántos archivos quiero mover, porque igual necesitaría mover una cantidad N de archivos.


Muchas gracias a todos.


Un saludo.
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 Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Ayuda con consulta copiar ficheros a N carpetas

Publicado por Antoni Masana (811 intervenciones) el 26/02/2023 20:23:23
Voy a suponer que las 10 carpetas se llaman:

.\Carpeta_0
.\Carpeta_1
..
.\Carpeta_8
.\Carpeta_9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@ echo off
 
set Carpeta=0
set Cuenta=0
 
set Origen=C:\Origen
set Destino=C:\Destino\Carpeta_
 
cd %Origen%
for %a in (*.*) do :Mover %a
goto :EOF
 
:Mover
    set /a Cuenta+=1
    move %1 %Destino%%Carpeta%
    if %Cuenta% EQU 300 (
        set /a Carpeta+=1
        set Cuenta=0
    )
    goto:EOF

Creo que el codigo es correcto, no lo he probado.
Pruebalo poniendo:

1
echo move %1 %Destino%%Carpeta%

para ver si fuciona bien sin mover los archivos.

Saludos.
\\//_
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

Ayuda con consulta copiar ficheros a N carpetas

Publicado por Jorge (1 intervención) el 28/02/2023 18:48:56
Muchísimas gracias Antoni por tu comentario....al final...con la ayuda de los foros, con gente predispuesta a ayudar a otros como tú, y un poquito de conocimiento lo he conseguido de la siguiente manera: (lo dejo por aquí por si ayuda a otras personas)

Lo que quería era, además de mover N archivos en N carpetas (siendo N un número variable que pudiera yo modificar), era poder comprimirlos en zip...y al final....lo conseguí de esta manera:

set origen=c:\44\3000

set destino=c:\5\carpeta_

set /p destinofinal="Introduzca ruta destino ficheros zip: "


:defino variable de cantidad de archivos que quiero copiar
set cantidad=300


:CREA X CARPETAS DE DESTINO NUMERDAS DEL 1 AL X
for /l %%x in (1,1,10) do (md "%destino%%%x")



:COPIA LOS ARCHIVOS DE LA CARPETA ORIGEN A LAS X CARPETAS DE DESTINO
setlocal enabledelayedexpansion
set contador=0
set numero_carpeta=1

for %%f in ("%origen%\*.*") do (

set destino_carpeta=%destino%!numero_carpeta!

copy "%%f" "!destino_carpeta!"

set /a contador+=1

if !contador! equ %cantidad% (
set /a numero_carpeta+=1
set contador=0
)

)


:COMPRIMIMOS LOS ARCHIVOS
set numero_carpeta=1
set contador=0

for /l %%f in (1,1,10) do (
cd /D C:\Program Files\7-Zip\
7z a %destinofinal%\!numero_carpeta!.zip %destino%!numero_carpeta!\*.*
set /a numero_carpeta+=1
)


:BORRAMOS LOS ARCHIVOS Y NOS QUEDAMOS CON LOS FICHEROS ZIP
set numero_carpeta=1
set contador=0
for /l %%f in (1,1,10) do (
del /q /s %destino%!numero_carpeta!\*.*
rmdir %destino%!numero_carpeta!
set /a numero_carpeta+=1

)

echo listo!
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