Me parece que el más sencillo sería
rar.exe que viene incluido con WinRar pero solo trabaja con archivos
.rar. Todos los archivos en Windows al crearlos o modificarlos se marcan con el atributo
Archivo (para archivar), esto es utilizado por una opción se
rar.exe para hacer BackUps.
La idea es en primera instancia comprimir los archivos y quitarles el atributo de Archivo, luego comprimir solo los archivos sin el atributo Archivo y quitar dicho atributo a estos nuevos archivos:
:: Creando los primeros archivos y listándolos
C:\Users\EdSon\Desktop>MD CarpetaMaestro
C:\Users\EdSon\Desktop>For /L %a In (1,1,3) Do @Echo archivo%a > CarpetaMaestro\Archivo%a
C:\Users\EdSon\Desktop>Dir /B CarpetaMaestro
Archivo1
Archivo2
Archivo3
:: Comprimiendo y quitando el atributo Archivo
C:\Users\EdSon\Desktop>rar a -ac CarpetaMaestro01.rar CarpetaMaestro\
Creando el archivo CarpetaMaestro01.rar
Añadiendo CarpetaMaestro\Archivo1 Aceptar
Añadiendo CarpetaMaestro\Archivo2 Aceptar
Añadiendo CarpetaMaestro\Archivo3 Aceptar
Borrando atributos... 100%
Listo
:: Agregando nuevos archivos y listándolos
C:\Users\EdSon\Desktop>For /L %a In (4,1,6) Do @Echo archivo%a > CarpetaMaestro\Archivo%a
C:\Users\EdSon\Desktop>Dir /B CarpetaMaestro
Archivo1
Archivo2
Archivo3
Archivo4
Archivo5
Archivo6
:: Comprimiendo los archivos sin atributo Archivo y quitando dicho atributo
C:\Users\EdSon\Desktop>rar a -ao -ac CarpetaMaestro02.rar CarpetaMaestro\
Creando el archivo CarpetaMaestro02.rar
Añadiendo CarpetaMaestro\Archivo4 Aceptar
Añadiendo CarpetaMaestro\Archivo5 Aceptar
Añadiendo CarpetaMaestro\Archivo6 Aceptar
Borrando atributos... 100%
Listo
Esa sería de las más sencillas, otras opciones pueden ser el guardar un registro de los archivos comprimidos y decirle al compresor que comprima todo menos los archivos que figuren en dicha lista. Esa lista se puede crear con un
Dir /B e ir actualizando cada vez que vas a comprimir.
También se pueden usar los atributos de fecha de modificación o creación para hacer exclusiones, y otra más que se me ocurre es Listar el contenido del comprimido y decirle al compresor que comprima todo menos dicha lista, en
rar.exe sería así:
:: Listando el contenido de la carpeta
C:\Users\EdSon\Desktop>Dir /B CarpetaMaestro\
Archivo1
Archivo2
Archivo3
Archivo4
Archivo5
Archivo6
:: Listando el contenido de CarpetaMaestro01.rar
C:\Users\EdSon\Desktop>rar lb CarpetaMaestro01.rar
CarpetaMaestro\Archivo1
CarpetaMaestro\Archivo2
CarpetaMaestro\Archivo3
:: Comprimiendo solo los archivos no presentes en CarpetaMaestro01.rar
C:\Users\EdSon\Desktop>rar lb CarpetaMaestro01.rar | rar a -x@ CarpetaMaestro02.rar CarpetaMaestro\
Creando el archivo CarpetaMaestro02.rar
Añadiendo CarpetaMaestro\Archivo4 Aceptar
Añadiendo CarpetaMaestro\Archivo5 Aceptar
Añadiendo CarpetaMaestro\Archivo6 Aceptar
Listo
:: Listando el contenido de CarpetaMaestro02.rar
C:\Users\EdSon\Desktop>rar lb CarpetaMaestro02.rar
CarpetaMaestro\Archivo4
CarpetaMaestro\Archivo5
CarpetaMaestro\Archivo6
Todo esto se debería de poder hacer también con
7z, aunque me parece que no tiene un listado simple, solo me salen listados detallados con muchas otras cosas más, habría que ver si hay opción para un listado simple o parsear el listado.