-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDriversBackup.bat
More file actions
151 lines (127 loc) · 4.62 KB
/
DriversBackup.bat
File metadata and controls
151 lines (127 loc) · 4.62 KB
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
@echo off
setlocal EnableDelayedExpansion
:: ================= VERIFICAR SE É ADMINISTRADOR =================
fltmc >nul 2>&1
if %errorlevel% neq 0 (
echo ===============================================
echo Este script precisa ser executado como ADMINISTRADOR.
echo ===============================================
echo Clique com o botao direito no arquivo e selecione:
echo "Executar como administrador".
echo.
pause
exit /b
)
:: ================= DEFINIR TIMESTAMP E VARIAVEIS =================
for /f "tokens=1-4 delims=/ " %%a in ("%date%") do (
set "DD=%%a"
set "MM=%%b"
set "YYYY=%%c"
)
for /f "tokens=1-3 delims=:.," %%a in ("%time%") do (
set "HH=%%a"
set "Min=%%b"
set "SS=%%c"
)
set "timestampFile=%YYYY%-%MM%-%DD%_%HH%%Min%%SS%"
set "scriptDir=%~dp0"
set "logFile=%scriptDir%drivers_backup_%timestampFile%.log"
set "backupDir=C:\DriversBackup"
:: Loga quando iniciou o script
echo [%date% %time%] [INFO] Inicio do script > "%logFile%"
:: ================= MENU PRINCIPAL =================
:menu
cls
echo =================================
echo BACKUP E RESTAURACAO DE DRIVERS
echo =================================
echo script disponibilizado por Canal WINchester
echo visite www.youtube.com/WINchesterCanal
echo.
echo 1 - Fazer backup dos drivers
echo 2 - Restaurar drivers
echo 3 - Acessar tutorial
echo 0 - Sair
echo.
set /p opcao=Digite sua opcao:
if "%opcao%"=="1" goto selecionarPasta
if "%opcao%"=="2" goto restaurarDrivers
if "%opcao%"=="3" goto abrirTutorial
if "%opcao%"=="0" goto sair
echo [%date% %time%] [ERRO] Opcao invalida: %opcao% >> "%logFile%"
echo Opcao invalida. Por favor, digite 1, 2, 3 ou 0.
timeout /t 3 >nul
goto menu
:: ================= BACKUP DOS DRIVERS =================
:selecionarPasta
echo.
set /p usarPadrao="Deseja usar a pasta padrao (%backupDir%)? [S/n]: "
echo [%date% %time%] [INFO] Opcao de uso de pasta padrao: "%usarPadrao%" >> "%logFile%"
if /i "!usarPadrao!"=="n" goto pastaPersonalizada
if /i "!usarPadrao!"=="s" goto iniciarBackup
echo Opcao invalida. Tente novamente.
goto selecionarPasta
:pastaPersonalizada
echo.
set /p backupDir="Digite o caminho completo para o backup: "
echo [%date% %time%] [INFO] Pasta definida para backup: "%backupDir%" >> "%logFile%"
if not exist "%backupDir%" (
echo Pasta nao existe. Verificando se precisa ajustar o nome...
echo %backupDir% | find " " >nul
if !errorlevel! == 0 (
set "backupDir=%backupDir: =_%"
echo A pasta tinha espacos. Usando nome ajustado para: "%backupDir%"
echo [%date% %time%] [INFO] Pasta tinha espacos. Nome ajustado para: "%backupDir%" >> "%logFile%"
)
echo Criando pasta: "%backupDir%"...
echo [%date% %time%] [INFO] Criando pasta: "%backupDir%" >> "%logFile%"
mkdir "%backupDir%" || (
echo Falha ao criar a pasta. Verifique o caminho e tente novamente.
echo [%date% %time%] [ERRO] Falha ao criar a pasta "%backupDir%" >> "%logFile%"
pause
goto pastaPersonalizada
)
)
:iniciarBackup
echo.
echo Iniciando o backup dos drivers...
echo [%date% %time%] [INFO] Iniciando backup para: "%backupDir%" >> "%logFile%"
if not exist "%backupDir%" mkdir "%backupDir%"
dism /online /export-driver /destination:"%backupDir%"
echo Backup concluido. Os drivers foram salvos em "%backupDir%".
echo [%date% %time%] [INFO] Backup concluido em: "%backupDir%" >> "%logFile%"
pause
goto menu
:: ================= RESTAURACAO DOS DRIVERS =================
:restaurarDrivers
echo.
set /p restoreDir=Digite o caminho onde estao os drivers para restauracao:
echo [%date% %time%] [INFO] Pasta definida para restauracao: "%restoreDir%" >> "%logFile%"
if not exist "%restoreDir%" (
echo Caminho da pasta de restauração "%restoreDir%" invalido ou inexistente.
echo [%date% %time%] [ERRO] Caminho de restauracao invalido: "%restoreDir%" >> "%logFile%"
pause
goto menu
)
echo Iniciando a restauracao dos drivers de "%restoreDir%"...
echo [%date% %time%] [INFO] Iniciando restauracao dos drivers >> "%logFile%"
for /r "%restoreDir%" %%f in (*.inf) do (
echo Instalando driver: %%f
echo [%date% %time%] [INFO] Instalando driver: %%f >> "%logFile%"
pnputil /add-driver "%%f" /install
)
echo Restauracao concluida.
echo [%date% %time%] [INFO] Restauracao concluida para "%restoreDir%" >> "%logFile%"
pause
goto menu
:: ================= ABRIR TUTORIAL =================
:abrirTutorial
echo Abrindo Winchester Canal no YouTube...
start https://youtu.be/ymOwOXdzHGQ
timeout /t 3 >nul
goto menu
:: ================= SAIR =================
:sair
echo Saindo...
echo [%date% %time%] [INFO] Script encerrado pelo usuario >> "%logFile%"
exit /b