Archivo .BAT

Quisiera saber si puede ayudarme a realizar lo siguiente, ejecutaré automáticamente el siguiente batch el cual realiza una copia de seguridad de una base de datos que está en access previas verificaciones de existencias claro, he realizado el siguiente código pero no se ejecuta correctamente, por favor ¿Podrías revisarlo y ver en que está mal?
@echo off
Cls
if no exist "C:\RECUER~1\RECUER~1.MDB" goto FINISH
echo *******************************************
echo ***   Iniciando respaldo de BD ...      ***
echo *******************************************
if not exist D:\ goto NO_D
if not exist D:\CARLOS\BACK_U~1\ goto CREAR
goto PROBLEM1
:CREAR
@echo off
MD D:\CARLOS\"BACK_UP_RECUERDAME
echo *********************************************
echo ***         Dar (Y) para continuar        ***
echo *********************************************
CACLS D:\BACK_U~1 /G EVERYONE:F
IF ERRORLEVEL 1 GOTO NO_FIN
copy C:\RECUERDAME\RECUERDAME.MDB D:\CARLOS\BACK_U~1
echo *********************************************
echo ***   PROCESO CONCLUIDO SATISFACTORIAMENTE **
echo *********************************************
GOTO FINISH
:PROBLEM1
@echo OFF
echo *************************************************
echo ** YA EXISTE EL DIRECTORIO D:\CARLOS\BACK_U~1  **
echo **          Dar (Y) para continuar             **
echo *************************************************
CACLS D:\CARLOS\BACK_U~1 /G EVERYONE:F
COPY /Y C:\RECUERDAME\RECUERDAME.MDB D:\CARLOS\BACK_U~1
echo *********************************************
echo ***   PROCESO CONCLUIDO SATISFACTORIAMENTE **
echo *********************************************
goto FINISH
:NO_D
@echo OFF
md "C:\BACKUP"
echo ***************************************************
echo **  No existe la unidad D:\               **
echo ** Por lo tanto se hara el respaldo en la        **
echo **         siguiente ruta C:\BACKUP              **
echo **            ** 
echo ***************************************************
copy /Y C:\RECUERDAME\RECUERDAME.MDB C:\BACKUP
goto FINISH
:NO_FIN
@echo off
echo *******************************************
echo ** UD ha optado por no ejecutar nada ..  **
echo *******************************************
:Pause
Pause
:Finish
Pause
Antes que me olvide, el comando CACLS no lo puedo usar bajo el S.O Windows xp que tiene el sistema de archivos FAT32, según tengo entendido lo puedo usar sólo bajo NTFS, que comando se usa para FAT32

2 Respuestas

Respuesta
1
Siento decirte que los permisos NTFS son especiales y como tal, sólo funcionan en particiones NTFS. Para FAT y FAT32 no existe ninguna herramienta.
Respuesta
1
Como no me has dicho que tipo de fallo te da el batch ni donde falla voy a limitarme a comentar dos errores que creo que he detectado. Si luego sigues interesado en que te eche una mano podemos seguir con el programa.
Estas son las anomalías:
1 En la tercera línea hay una errata, dice "no exist" y debería decir "not exist"
2 En la línea 16 (primera utilización del comando CACLS) creo que hay un error en el directorio al que se pretende aplicar el comando. Según se ve en el comando MD de más arriba se acaba de crear el directorio D:\CARLOS\"BACK_UP_RECUERDAME; sin embargo el comando CACLS pretende establecer los derechos de acceso para el directorio D:\BACK_U~1 que seguramente no existe (porque no es el que se acaba de crear). Eso provoca que el ERRORLEVEL valga 1, se vaya a NO_FIN y no haga prácticamente nada (salvo crear el directorio).
Respecto a un comando similar al CACLS para FAT32 creo que no existe. Debo confesar que antes de ver tu consulta no me había interesado gran cosa por el comando CACLS, pero he investigado un poco sobre el asunto. La estructura de archivos mediante FAT (File Allocation Table) no contempla en su diseño ningún control de acceso, cosa que si que hace el "File System" NTFS. Puedes ver un artículo al respecto en:
https://belenus.unirioja.es/~lugurria/Informes/web/permisoswindows.html#int
Eso es todo de momento. Si tienes algún otro problema y quieres seguir preguntándome aquí estaré.
Saludos,
GGG
Acabo de ver que no soy el único al que hiciste esta pregunta. He visto que también se la hiciste a jmadgan. No me parece mal, en absoluto. Me alegra comprobar que, respecto a un comando similar al CACLS para FAT ha habido acuerdo.
Otra cosa que no te comenté antes. Deduzco que tu sistema operativo está en versión inglesa. Si fuera versión española en lugar de EVERYONE tendrías que poner TODOS en los parámetros del comando CACLS.
Saludos,
GGG

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas