Ms-Dos - Ayuda para borrar directorios por favor!!

 
Vista:

Ayuda para borrar directorios por favor!!

Publicado por Eukeny (9 intervenciones) el 24/08/2009 18:01:07
Hola reciente mente hice un codigo que respaldara ciertos directorios de la maquina con numeracion consecutiva.. mismo que me hizo favor de corregir el Sr Antoni Masana...

Lo que ahora deseo es que despues del tercer respaldo me borre siempre el primero.. dejandome solo las 2 ultimas carpetas...Ojala alguine me pueda ayudar....

Es decir:

1ra ejecucion
=> C: espaldo1

2da ejecucion
=> C: espaldo1
=> C: espaldo2
3ra ejecucion <----- A partir d este db borrar siempre el anterior dejando siempre los 2
ultimos
=> C: espaldo2
=> C: espaldo3
..
.
Etc.......

**************************** Este s mi codigo********************
@ECHO OFF
@ECHO *** RESPALDANDO INFORMACION DEL EQUIPO ***

SET FOLDER=%date:~0,2%-%date:~3,2%-%date:~6,4%
SET BACKUPCMD=XCOPY /S /C /D /E /H /I /R /Y
SET i=0

:suma
set /a i=i+1

IF EXIST "C:RespSist_"%FOLDER%-%i%. goto suma

MKDIR "C:RespSist_"%FOLDER%-%i%
MKDIR "C:RespSist_%FOLDER%-%i%Mis Documentos"
MKDIR "C:RespSist_%FOLDER%-%i%Escritorio"
%BACKUPCMD% "C:Documents and settingsUsuario1Mis Documentos". "C:RespSist_%FOLDER%-%i%Mis Documentos"
%BACKUPCMD% "C:Documents and settingsUsuario1Escritorio". "C:RespSist_%FOLDER%-%i%Escritorio"

goto salir

:salir
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

RE:Ayuda para borrar directorios por favor!!

Publicado por Antoni Masana (295 intervenciones) el 25/08/2009 06:44:10
Esta linea te deja los 2 ultimos directorios. Para conservar mas cambia el valor de skip=

FOR /F "skip=2" %%a IN ('DIR C:\Res* /O-D /B') DO RD /S /Q C:\%%a

¿Como Funciona? ver DIR /? y FOR /?

Saludos desde Barcelona, España.
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

RE:Ayuda para borrar directorios por favor!!

Publicado por Armando Nava  (194 intervenciones) el 25/08/2009 18:53:10
Saludos Antoni

Como siempre simplificas muy bien las operaciones en BAT, yo que me tarde horas en el post de Eukeny con mis métodos largos.

Bueno solo para precisar el comando que utilizas en el dir, creo que debería ser

DIR C:Res* /A:D /O:-D /B

Ya que con la opcion /A:D aseguramos que se listen unicamente directorios

Aqui va de nuevo mi codigo:


contar.bat
--------------------------------------------------------------------
@echo off
set /a NUM=0

dir /A:D /O:-D /B > lista_respaldos.txt

for /F "delims=," %%i IN (lista_respaldos.txt) do (
echo %%i
call numera.bat
)

if %NUM% EQU 3 (
echo "Entonces borramos"
echo "La ultima carpeta"
call resta.bat
)
--------------------------------------------------------------------

numera.bat
--------------------------------------------------------------------
set /A NUM=NUM+1
echo %NUM%
--------------------------------------------------------------------

resta.bat
--------------------------------------------------------------------
set /A NUM=NUM-1
echo %NUM%
for /F "skip=%NUM% delims=," %%a IN (lista_respaldos.txt) do (
echo %%a con fecha %%~ta
)
--------------------------------------------------------------------

Si tienes más de tres carpetas respaldadas, entonces nunca se cumplirá la condición.

En resta. bat faltaria incluir el comando, ve la ayuda de RMDIR /?

RMDIR %%a
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 programa batch..

Publicado por Eukeni (7 intervenciones) el 18/09/2009 21:06:52
Hola que tal, dandole seguimiento a este programa de respaldos automaticos, donde debe borrar la carpeta anterior siempre dejando las dos ultimas en cada ejecucion...

he llegado hasta este codigo que funciona muy bien, pero falla al etiquetar la carpeta subsecuente a la segunda, es decir...

...1ra ejecucion
Respaldo18-09-09-1
Respaldo18-09-09-2

...2da ejecucion..
Respaldo18-09-09-2
Respaldo18-09-09-3

hace esto:

...1ra ejecucion
Respaldo18-09-09-1
Respaldo18-09-09-2

...2da ejecucion..
Respaldo18-09-09-2
Respaldo18-09-09-1

alguien puede orientarme para saber en que falla el algoritmo.. muchas gracias!!!

@ECHO OFF
@ECHO *** RESPALDANDO ***

SET FOLDER=%date:~0,2%-%date:~3,2%-%date:~6,4%
SET BACKUPCMD=XCOPY /S /C /D /E /H /I /R /Y
SET i=0

:suma
set /a i=i+1
IF EXIST "C:\RespSist_"%FOLDER%-%i%. goto suma

MKDIR "C:\RespSist_"%FOLDER%-%i%
MKDIR "C:\RespSist_%FOLDER%-%i%\Mis Documentos"
MKDIR "C:\RespSist_%FOLDER%-%i%\Escritorio"
%BACKUPCMD% "C:\Documents and settings\Usuario1\Mis Documentos". "C:\RespSist_%FOLDER%-%i%\Mis Documentos"
%BACKUPCMD% "C:\Documents and settings\Usuario1\Escritorio". "C:\RespSist_%FOLDER%-%i%\Escritorio"

FOR /F "skip=2" %%i IN ('DIR C:\Res* /O-D /B') DO RD /S /Q C:\%%i

:salir
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