-
Notifications
You must be signed in to change notification settings - Fork 244
/
DavidPerez.bat
154 lines (140 loc) · 5.01 KB
/
DavidPerez.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
@echo off
:: Vamos a hacer un script que le de la bienvenida al usuario cada vez que inicie el sistema.
:: Script que le de la bienvenida al usuario cada vez que inicie el sistema.
:: Incluye automatización de mensaje através de WhatsApp Web.
:: By D4vy_prz el 12/01/2023. // Modificado a 18/10/2024
:: Establecemos las variables de usuario y hora.
set "usuario=%username%"
set "hora_actual=%time:~0,2%"
Echo.
:: Adaptación de la bienvenida según la hora del día.
if %hora_actual% LSS 12 (
echo ==============================================
echo Buenos dias, bienvenido al sistema %username%!
echo ==============================================
) else if %hora_actual% LSS 21 (
echo ================================================
echo Buenas tardes, bienvenido al sistema %username%!
echo ================================================
) else (
echo ===============================================
echo Buenas noches, bienvenido al sistema %username%!
echo ===============================================
)
Echo.
:: Fumanda para la fecha y hora actual.
for /f "tokens=1-3 delims=/" %%a in ("%DATE%") do (
set "dia=%%a"
set "mes=%%b"
set "año=%%c"
)
for /f "tokens=1-3 delims=:." %%a in ("%TIME%") do (
set "hora=%%a"
set "minutos=%%b"
set "segundos=%%c"
)
:: Elimina el decimal después de los segundos
set "segundos=%segundos:~0,2%"
:: Fumada para obtener el día de la semana actual en formato númerico y se le asgina una variable.
for /f %%a in ('wmic path win32_localtime get dayofweek ^| findstr /r "[0-9]"') do set day=%%a
:: Aquí según la variable concida responderá el día en el que actualemente estemos.
if "%day%"=="1" (
echo Hoy es Lunes %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else if "%day%"=="2" (
echo Hoy es Martes %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else if "%day%"=="3" (
echo Hoy es Miercoles %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else if "%day%"=="4" (
echo Hoy es Jueves %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else if "%day%"=="5" (
echo Hoy es Viernes %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else if "%day%"=="6" (
echo Hoy es Sabado %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else if "%day%"=="7" (
echo Hoy es Domingo %dia%-%mes%-%año% y son las %hora%:%minutos%:%segundos%
echo.
echo.
) else (
echo Error: El dia de la semana es invalido!
)
echo.
pause
echo.
:: ---------------------------------------------------------------------------------------------------------------------
:: Configuremos para comprobar si tiene que hacer una copia de seguridad (dias 1 y 15 de cada mes)
:: Comprobación si es el día 1 o 15 de cada mes para la copia de seguridad.
:Copia
if "%dia%"=="01" (
goto :EjecutarCopia
) else if "%dia%"=="15" (
goto :EjecutarCopia
) else (
echo Hoy no toca hacer copias de seguridad...
echo.
)
timeout /t 5
goto :Mensaje
:EjecutarCopia
Echo Hoy es dia %day%, toca realizar copias de seguridad...
Echo Espera mientras se realiza la copia automaticamente
Echo.
timeout /t 3
:: Tonterias de Windows para evitar fallos y que todo vaya de chill.
:: Establecer entorno local y habilitar expansiones retardadas y extensiones de comandos
SetLocal EnableDelayedExpansion EnableExtensions
:: Mostrar mensaje de bienvenida
Echo.
Echo.
Echo============================================================
Echo= BIENVENIDO AL GENERADOR DE COPIAS...
Echo============================================================
Echo.
Echo.
Echo. Copiando archivos, espere...
Echo.
:: Llamar a la función que copia solo los archivos nuevos o modificados
call :CopiarArchivos "C:\Users\Documents" "S:\COPIAS_SEGURIDAD"
:: Función para copiar solo archivos nuevos o modificados
:CopiarArchivos
:: Obtener argumentos de la función
set "origen=%~1"
set "destino=%~2"
:: Copiar archivos nuevos o modificados
robocopy "%origen%" "%destino%" /e /r:1 /w:1 /mir /xo
:: Mostrar mensaje de copia finalizada
Echo.
Echo. COPIA FINALIZADA.
Echo.
Pause
:: ---------------------------------------------------------------------------------------------------------------------
:: ---------------------------------------------------------------------------------------------------------------------
:: Momento de la despedida.
:Final
if %hora_actual% LSS 12 (
echo ==============================================
echo "Espero que tengas una maravilloso dia %username%!"
echo ==============================================
) else if %hora_actual% LSS 21 (
echo ================================================
echo "Espero que tengas una maravilloso tarde %username%!"
echo ================================================
) else (
echo ===============================================
echo "Espero que tengas una maravillosa noche %username%!"
echo ===============================================
)
Echo.
pause
exit