¿Cómo termino mi sistema de respaldo?

Tengo el siguiente código

@echo off 
Setlocal EnableDelayedExpansion
set carpeta=C:\Users\luis_\Desktop\SCAN-LUIS-ANGEL\DIA
pushd %carpeta%
for /f "tokens=* delims=" %%a in ('dir /b VG_10302*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
for /f "tokens=* delims=" %%a in ('dir /b VG_10303*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
for /f "tokens=* delims=" %%a in ('dir /b AP_10600*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
for /f "tokens=* delims=" %%a in ('dir /b VG_10301*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
Popd
set carpeta=C:\Users\luis_\Desktop\SCAN-LUIS-ANGEL\respaldos
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do set %%x
set today=%Year%-%Month%-%Day%
pushd %carpeta%
for /f "tokens=* delims=" %%x in ('dir /s /b /ad %carpeta%*.*') do md "%%x\%today%"
Popd

El mismo cambia el nombre de los archivos y, posteriormente crea una carpeta que tiene por nombre la fecha actual, lo que me falta es que el programa cree 2 subcarpetas dentro de la carpeta recién creada, las cuales serían Bco A y Bco B y envíe los archivos desde la carpeta DIA(definida al principio del código) hacia estas 2 nuevas subcarpetas, filtrando entre las que empiezan por VG_10303 (estas van a Bco A) y las demás van a Bco B

1 respuesta

Respuesta
1

No me he metido en el diseño de tu BAT, aunque creo que es bueno distinguir con variables distintas la carpeta origen y la carpeta de respaldo. Y el último FOR solo para crear la carpeta de fecha me parece innecesario. Esto es lo que te propongo:

@echo off
Setlocal EnableDelayedExpansion
set carporig=C:\Users\luis_\Desktop\SCAN-LUIS-ANGEL\DIA
pushd %carporig%
for /f "tokens=* delims=" %%a in ('dir /b VG_10302*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
for /f "tokens=* delims=" %%a in ('dir /b VG_10303*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
for /f "tokens=* delims=" %%a in ('dir /b AP_10600*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
for /f "tokens=* delims=" %%a in ('dir /b VG_10301*.pdf') do (
   set nomnue=%%a
   set nomnue=!nomnue: =_!
   Ren "%%a" "!nomnue!"
   )
Popd
set carpresp=C:\Users\luis_\Desktop\SCAN-LUIS-ANGEL\respaldos
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do set %%x
set today=%Year%-%Month%-%Day%
pushd %carpresp%
md %today%
md "%today%\Bco A"
md "%today%\Bco B"
popd
pushd %carporig%
for /f "tokens=* delims=" %%a in ('dir /b *.*') do (
   set nombre=%%a
   if "!nombre:~0,8!"=="VG_10303" (copy "%%a" "%carpresp%\%today%\Bco A"
      ) else copy "%%a" "%carpresp%\%today%\Bco B"
   )
Popd

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas