Fala galera que acompanha o blog...
Pode ser que você esteja estranhando a sigla DIY (Do It Yourself) no titulo dessa postagem, mas é exatamente disso que esse post se trata. "Faça você mesmo" um arquivo batch com menu e com várias funcionalidades para agilizar seu dia a dia.
Se você não conhece o que são arquivos batch, clique nesse link onde explicamos o que são esses arquivos, como criar e executar.
Normalmente, cria-se um arquivo batch para cada tarefa. Mas, e se juntássemos todos esses arquivos e colocássemos em um único arquivo batch, criássemos apenas uma variável de ambiente para nosso arquivo e através de um menu executássemos qualquer uma das nossas tarefas... parece ser bacana não?Se você não conhece o que são arquivos batch, clique nesse link onde explicamos o que são esses arquivos, como criar e executar.
É exatamente isso que vamos fazer!
Vocês perceberão que em nem toda linha foi comentada, por ser um pouco repetitivo. Mas a ideia geral é:
- Temos uma tela de login, caso erre 3 vezes a senha seu computador será desligado;
A SENHA INICIAL É 1234, ABRA O ARQUIVO BATCH E CONFIGURE A SENHA QUE ACHAR MELHOR.
- Acessando o sistema, temos um menu com várias funcionalidades, que antes estavam cada uma em um arquivo batch e foi reunido tudo nesse arquivo;
- Alguns comandos, por serem "críticos" precisa de uma confirmação do usuário para que serem executados;
- Sugiro que execute esse arquivo batch no prompt de comando com permissão de administrador, pois alguns comandos precisam de tal permissão;
rem EXIBE APENAS O COMANDO SEM APRENTAR DIRETORIO @echo off cls rem ALTERO A COR DO BACKGROUND E DA FONTE APENAS PARA IDENTIFICAR QUE ESTOU DENTRO DE UM ARQUIVO BATCH color 80 rem ALTERO O TITULO DA PAGINA Title COMANDOS DEVIC - PASSWORD rem SETO A QUANTIDADE DE TENTATIVAS PARA LOGAR NO ARQUIVO BATCH set /a tries=3 rem TODO ARQUIVO QUE POSSUIR ":NOME" É UM PONTO DE ACESSO (PA) REFERENCIADO POR UM COMANDO "goto" :TOP echo ================================================= echo * %tries% tentativa(s) restante(s). * echo ================================================= echo Entre com sua senha: rem SETO A SENHA NA MINHA VARIAVEL set /p pass= rem VERIFICO SE A SENHA DIGITADA É A MESMA QUE FOI CONFIGURADA SE SIM ENVIO PARA O PA IDENTIFICADO COM "MENU" if %pass% == 1234 goto MENU rem DECREMENTO A QUANTIDADE DE TENTATIVAS set /a tries = %tries -1 rem VERIFICO SE ACABOU AS TENTAVAS SE SIM ENVIO PARA O PA IDENTIFICADO COMO "ERROR" E CHAMO O PA "TOP" NOVAMENTE if %tries% == 0 goto ERROR cls goto TOP rem TENDO ESGOTADO AS TENTATIVAS ESSE PA É CHAMADO E INICIO O DESLIGAMENTO PROGRAMADO :ERROR echo Desculpe, voce errou muitas vezes a senha e seu computador será desligado. start shutdown -s -f -t 1800 -c "DESLIGANDO EM 3 MINUTOS..." pause exit rem ESSE É O MENU DO SISTEMA, ALTERO O TITULO DA PAGINA, OS NUMEROS REPRESENTAM CADA SERVIÇO QUE PODERÁ SER EXECUTADO :MENU cls Title COMANDOS DEVIC - MENU rem MOSTRO AS HORAS, NOME DO COMPUTADOR E USUARIO LOGADO date /t echo Computador: %computername% Usuario: %username% echo. echo MENU DEVELOPER IS COMING echo ================================================= echo * 1. Desligar * echo * 2. Programar desligamento (5 min) * echo * 3. Cancelar desligamento * echo * 4. Alterar usuario * echo * 5. Reiniciar * echo * 6. Abrir Prompt Comando * echo * 7. Abrir Prompt Comando (Admin) * echo * 8. Telnet * echo * 9. Mapa de caracteres * echo * 10. IP Config * echo * 11. Esvaziar a Lixeira * echo * 12. Fazer Backup * echo * 13. Escanear Disco Local * echo * 14. Painel de Controle * echo * 15. Calculadora * echo * 16. Notepad * echo * 17. Inicializar * echo * 18. Abrir Workspace * echo * 19. Abrir Servidor * echo * 20. Executar BATCH externo * echo * 21. IP's conectados * echo * 99. Star Wars Episodio IV * echo * 0. Sair * echo ================================================= rem SETO O VALOR NA MINHA CARIAVEL set /p opcao= Escolha uma opcao: echo ================================================= rem COMANDO 1 AO 5 EU CHAMO O MEU PA "CONFIRMATION" PARA VERIFICAR SE REALMENTE É PARA EXECUTAR O COMANDO rem POIS SÃO COMANDOS CRITICOS QUE PODEM TER SIDO DIGITADOS ERRONEAMENTE, POSSIBILIDADES DA APLICAÇÃO if %opcao% equ 0 goto EXIT if %opcao% equ 1 goto CONFIRMATION if %opcao% equ 2 goto CONFIRMATION if %opcao% equ 3 goto CONFIRMATION if %opcao% equ 4 goto CONFIRMATION if %opcao% equ 5 goto CONFIRMATION if %opcao% equ 6 goto OPENCMD if %opcao% equ 7 goto OPENCMDAMD if %opcao% equ 8 goto OPENTELNET if %opcao% equ 9 goto MAPCHAR if %opcao% equ 10 goto IPCNFG if %opcao% equ 11 goto TRASH if %opcao% equ 12 goto BACKUP if %opcao% equ 13 goto SCANDISK if %opcao% equ 14 goto PNLCONTROL if %opcao% equ 15 goto CALC if %opcao% equ 16 goto NOTE if %opcao% equ 17 goto INIT if %opcao% equ 18 goto WORKSPACE if %opcao% equ 19 goto SERVER if %opcao% equ 20 goto BATCH if %opcao% equ 21 goto NET if %opcao% equ 99 goto STARWARS rem VERIFICO SE REALMENTE É PARA EXECUTAR OS COMANDOS (NO POST EXPLICO CADA UM DOS PARAMETROS) :CONFIRMATION CHOICE /N /T 30 /C sn /CS /D s /M "Deseja executar a operacao? [S]im ou [N]ao" if errorlevel = 2 goto NAO if errorlevel = 1 goto SIM rem SE REALMENTE FOR PARA EXECUTAR O COMANDO EU CHAMO O PA RESPONSAVEL PELA FUNCIONALIDADE :SIM cls echo O usuario pressionou [S] pause if %opcao% equ 1 goto TURNOFFINSTA if %opcao% equ 2 goto TURNOFFTIME if %opcao% equ 3 goto CANCELTURNOFF if %opcao% equ 4 goto LOGOFF if %opcao% equ 5 goto RESTART rem SE NÃO FOR PARA EXECUTAR O COMANDO RETORNO PARA O MENU :NAO cls echo O usuario pressionou [N] pause goto MENU rem OPCAO 1. Desligar :TURNOFFINSTA shutdown -s -t 0 goto EXIT rem OPCAO 2. Programar desligamento (5 min) :TURNOFFTIME shutdown -s -f -t 300 -c "VOCE TEM 5 MINUTOS PARA SALVAR SEUS TRABALHOS..." goto MENU rem OPCAO 3. Cancelar desligamento :CANCELTURNOFF shutdown -a goto MENU rem OPCAO 4. Alterar usuario :LOGOFF shutdown -f goto MENU rem OPCAO 5. Reiniciar :RESTART shutdown -r -t 0 goto EXIT rem OPCAO 6. Abrir Prompt Comando :OPENCMD cls "%windir%\system32\cmd.exe" goto MENU rem OPCAO 7. Abrir Prompt Comando (Admin) :OPENCMDAMD cls runas /user:Faguinho "%windir%\system32\cmd.exe" goto MENU rem OPCAO 8. Telnet rem NECESSARIO QUE O SERVICO TELNET ESTEJA HABILITADO PREVIAMENTE :OPENTELNET cls telnet rem OPCAO 9. Mapa de caracteres :MAPCHAR cls "%windir%\SYSTEM32\CHARMAP.exe" pause goto MENU rem OPCAO 10. IP Config :IPCNFG cls call ipconfig pause goto MENU rem OPCAO 11. Esvaziar a Lixeira :TRASH cls rd /S /Q c:\$Recycle.bin echo ================================================= echo * LIXEIRA ESVAZIADA! * echo ================================================= pause goto MENU rem OPCAO 12. Fazer Backup rem NECESSÁRIO DEFINIR UMA PASTA DE ORIGEM E UMA PASTA DE DESTINO :BACKUP cls xcopy /T /C C:\Users\Faguinho\Documents\*.* C:\Users\Faguinho\Favorites echo ================================================= echo * BACKUP CONCLUIDO! * echo ================================================= pause goto MENU rem OPCAO 13. Escanear Disco Local rem NECESSÁRIO DEFINIR QUAL UNIDADE DEVERIA SER ESCANEADA :SCANDISK cls echo ================================================= echo * ESCANEAMENTO DE DISCO! * echo ================================================= chkdsk c: pause goto MENU rem OPCAO 14. Painel de Controle :PNLCONTROL cls control.exe pause goto MENU rem OPCAO 15. Calculadora :CALC cls calc.exe pause goto MENU rem OPCAO 16. Notepad :NOTE cls notepad.exe pause goto MENU rem OPCAO 17. Inicializar rem ADICIONE TODOS AS FERRAMENTAS QUE UTILIZA COM FREQUENCIA :INIT rem <ferramenta 1="" a="" dia="" no="" que="" usa="" voce=""> rem <ferramenta 2="" a="" dia="" no="" que="" usa="" voce=""> rem <ferramenta 3="" a="" dia="" no="" que="" usa="" voce=""> goto MENU rem OPCAO 18. Abrir Workspace :WORKSPACE start %userprofile%\Desktop\Projetos\workspace pause goto MENU rem OPCAO 19. Abrir Servidor :SERVER start %userprofile%\Desktop\Ferramentas\oracle pause goto MENU rem OPCAO 20. Executar BATCH externo rem NECESSARIO CRIAR ARQUIVO BATCH :BATCH call %userprofile%\Desktop\horas.bat pause goto MENU rem OPCAO 21. IP's conectados :NET call netstat -an pause goto MENU rem OPCAO 99. Star Wars Episodio IV :STARWARS telnet towel.blinkenlights.nl rem OPCAO 0. Sair :EXIT cls echo ================================================= echo * ATE MAIS! * echo ================================================= pause exit
Esse é o nosso projeto! Se preferir pode fazer o download dos arquivos aqui.
Vou deixar aqui o batch externo que eu utilizo ao selecionar a opção "20. Executar BATCH externo":
@echo off Title QUE HORAS SAO? cls echo AGORA SAO EXATAMENTE: echo. echo ~ %TIME% ~ echo.
Vamos entender agora o "choice", utilizado para recuperar a opção selecionada pelo usuário:
CHOICE /N /T 30 /C sn /CS /D s /M "Deseja executar a operacao? [S]im ou [N]ao"
/N - Oculta uma lista de opções no prompt. A mensagem antes do prompt é exibida e as opções ainda estão ativadas.
/T - É o número de segundos de pause antes que uma opção padrão seja escolhida, eu coloquei 30 segundos.
/C - Especifica uma listas de opções a ser criada. "sn = Sim ou Não"
/CS - Permite a seleção de opções de distinção entre maiúsculas e minúsculas. Por padrão, o utilitário não diferencia maiúsculas e minúsculas.
/D - Especifica a opção padrão depois de 30 segundos. "/D s"
/M - Especifica a mensagem a ser exibida antes do prompt. Se não for especificado, o utilitário exibe apenas um prompt.
Em caso de duvidas sobre oque o cada comando faz, podem utilizar esse post aqui. Possui uma lista com vários comandos e explicação de sua funcionalidade.
Pessoal, é isso ai... Até a próxima!
Esse código já está disponível no github, clique aqui!
Nenhum comentário:
Postar um comentário