Ms-Dos - Condicional IF en un batch

 
Vista:
Imágen de perfil de ghost
Val: 4
Ha disminuido 1 puesto en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Condicional IF en un batch

Publicado por ghost (2 intervenciones) el 04/03/2020 18:15:02
Buenos días, tengo un inconveniente y es el siguiente:

necesito crear un batch que primero verifique si hay un tipo de archivo o exención en una carpeta y si lo hay, debería
realizar otras operaciones; y en caso que no hayan archivos de este tipo no debe hacer nada.

Ejemplo del archivo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@ECHO OFF
echo.COPIAR ARCHIVO DE BACKUP
 
:: CONDICIONAL PARA VERIFICAR SI EXITEN ARCHIVOS .ZIP
IF EXIST ".ZIP"(
 
:: ELIMINA LO QUE HAY EN LA SUBCARPETA ACTUAL QUE SEAN ARCHIVOS ZIP
del /a /f /q "D:\Respaldos\ESP\OF1\ACTUAL\*.zip"
 
:: COPIA LOS ARCHIVOS ZIP QUE HAY EN CARPETA OF1 A SUBCARPETA ACTUAL
XCOPY /C "D:\Respaldos\ESP\OF1\*.zip" "D:\Respaldos\ESP\OF1\ACTUAL\"
 
:: ELIMINA LO QUE HAY EN LA CARPETA OF1 EN ESTE CASO LA COPIA QUE YA ESTA EN ACTUAL
del /a /f /q "D:\Respaldos\ESP\OF1\*.zip")
 
:: SI NO HAY ARCHIVOS ZIP EN LA CARPETA OF1 NO REALICE NINGUNA ACCION
ELSE(ECHO NO HAY ARCHIVOS ACTUALIZADOS)
 
exit
________________________________________________________________________
Lo que esta dentro del IF me funciona, pero el problema esta en la condicional la cual no se como decirle que verifique que hay archivos con exención .zip

Ojala me puedan ayudar o dar una opinión de otra forma de hacerlo.
Gracias!
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

Condicional IF en un batch

Publicado por Antoni Masana (811 intervenciones) el 04/03/2020 20:05:56
Aqui lo tienes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@ECHO OFF
echo.COPIAR ARCHIVO DE BACKUP
: ---- CONDICIONAL PARA VERIFICAR SI EXITEN ARCHIVOS .ZIP
if not exist *.ZIP (
    echo NO HAY ARCHIVOS ACTUALIZADOS
    goto :EOF
)
: ---- ELIMINA LO QUE HAY EN LA SUBCARPETA ACTUAL QUE SEAN ARCHIVOS ZIP
del /a /f /q "D:\Respaldos\ESP\OF1\ACTUAL\*.zip"
: ---- COPIA LOS ARCHIVOS ZIP QUE HAY EN CARPETA OF1 A SUBCARPETA ACTUAL
XCOPY /C "D:\Respaldos\ESP\OF1\*.zip" "D:\Respaldos\ESP\OF1\ACTUAL\"
: ---- ELIMINA LO QUE HAY EN LA CARPETA OF1 EN ESTE CASO LA COPIA QUE YA ESTA EN ACTUAL
del /a /f /q "D:\Respaldos\ESP\OF1\*.zip")
exit

El goto :EOF es el equivalente al EXIT

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de ghost
Val: 4
Ha disminuido 1 puesto en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Condicional IF en un batch

Publicado por ghost (2 intervenciones) el 05/03/2020 16:04:39
Buenos días,

Le agradezco de antemano por su ayuda, es lo que quería y me a funcionado muy bien.
finalmente quedo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@ECHO OFF
echo.COPIAR ARCHIVO DE BACKUP
 
::CONDICIONAL PARA VERIFICAR SI EXISTEN ARCHIVOS .ZIP EN CARPETA DEL USUARIO
if not exist "D:\Respaldos\ESP\OF1\"*.ZIP (
    echo NO HAY ARCHIVOS ACTUALIZADOS
 
    goto :EOF
)
 
::ELIMINA LO QUE HAY EN LA SUBCARPETA ACTUAL QUE SEAN ARCHIVOS ZIP
del /a /f /q "D:\Respaldos\ESP\OF1\ACTUAL\*.zip"
 
::COPIA LOS ARCHIVOS ZIP QUE HAY EN LA CARPETA DEL USUARIO A LA SUBCARPETA ACTUAL
XCOPY /C "D:\Respaldos\ESP\OF1\*.zip" "D:\Respaldos\ESP\OF1\ACTUAL\"
 
::ELIMINA LO QUE HAY EN LA CARPETA DEL USUARIO EN ESTE CASO LA COPIA QUE YA ESTA EN ACTUAL
del /a /f /q "D:\Respaldos\ESP\OF1\*.zip"
 
exit


Este .bat se ejecuta con una tarea programada en windows, y me generaba el problema de que no lo ejecutaba bien pero al ejecutar el archivo en la carpeta si lo hacia bien.

lo que pasaba era que en el if por alguna razón debía especificarle también la ruta de donde tenia que verificar los archivos para que la tarea se ejecutara correctamente.

Muchas gracias por todo.
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