Ir ao conteúdo
  • Cadastre-se

Bat Mudar a cor de uma linha em arquivo .bat


Posts recomendados

@echo off
echo 		executando teste...
ping -n 4 google.com.br
if %errorlevel%==0 (
	color 0a
	echo.
	echo 		teste realizado   // aqui deve ser verde
	echo 		voce esta conectado // aqui deve ser verde
	echo 		pressione enter para voltar ao menu
	echo.
) else (
	echo.
	echo 		erro durante execucao do teste // aqui deve ser vermelho
	echo 		pressione enter para voltar ao menu
	echo.
)
pause

e ai galera. fiz esse codigo num arquivo .bat e queria saber se é possível mudar as cores somente nas áreas destacadas

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Epa! Tenho uma função pra isso:
EDIT: é importante ter o exit para não rodar a função no final do seu código.

exit
:cor
>%2 (set/p=.) <&1
findstr /a:%1 . %2 con &erase %2
for /f "delims=" %%a in ('cmd /k prompt $h$h ^<^&1') do echo %%a
goto:eof

pra usar a função, use

call:cor f1 "Texto"

ao invés de echo. Detalhe, o f1 é a cor. Espero ter ajudado. 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...

Olá! Boa Tarde !

 

Estou querendo fazer esse código em um arquivo bat.

 Como posso  aplicar por favor?

 

Apenas a linha endereço IP gostaria com a fonte branca

echo off
color f
cls
:start
mode 70,15
for /f "skip=1" %%x in ('wmic COMPUTERSYSTEM get SystemType') do if not defined system-xnn set system-xnn=%%x

title    MEU IP 
color A
set data=%date:~6,4%-%date:~3,2%-%date:~0,2%
set hora=%time:~0,2%:%time:~3,2%
echo.
echo.
echo    Data atual: %data%  - Hora Atual: %hora%         
echo    Computador: %computername%  -  Usuario: %username% 
echo.
echo    Autor: Evaldo Soares 
echo    Contato: [email protected]
echo.
echo   ---------------------------------------------------------------
                        ipconfig | findstr IPv4                                                          
echo   ---------------------------------------------------------------
echo.
pause

msg "%username%" Informe o número de IP ao Suporte.

goto start
exit
 

Obrigado !

ip.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@evaldo soares Pode ser algo assim:

 

@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "DEL=%%a"
color f
cls
:start
mode 70,20
for /f "skip=1" %%x in ('wmic COMPUTERSYSTEM get SystemType') do if not defined system-xnn set system-xnn=%%x

title    MEU IP 
color A
set data=%date:~6,4%-%date:~3,2%-%date:~0,2%
set hora=%time:~0,2%:%time:~3,2%
echo.
echo.
echo    Data atual: %data%  - Hora Atual: %hora%         
echo    Computador: %computername%  -  Usuario: %username% 
echo.
echo    Autor: Evaldo Soares 
echo    Contato: [email protected]
echo.

Call :ColorText 0f ---------------------------------------------------------------
echo.
echo.
for /f "delims=" %%a in ('ipconfig ^| findstr IPv4') do set nome=%%a & set nome=!nome::=! & call :ColorText 0f "!nome!" & echo.                                     
Call :ColorText 0f ---------------------------------------------------------------
echo.
echo.
pause

msg "%username%" Informe o número de IP ao Suporte.

goto start
exit

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof

 

zpJ7QLS.gif

@evaldo soaresUma dúvida: porque você colocou o script para ficar repetindo e não finalizar depois que mostra o IP pela primeira vez, sempre volta pro start...

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
Em 28/01/2021 às 19:30, ricardo_br disse:

@evaldo soares Pode ser algo assim:

 


@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "DEL=%%a"
color f
cls
:start
mode 70,20
for /f "skip=1" %%x in ('wmic COMPUTERSYSTEM get SystemType') do if not defined system-xnn set system-xnn=%%x

title    MEU IP 
color A
set data=%date:~6,4%-%date:~3,2%-%date:~0,2%
set hora=%time:~0,2%:%time:~3,2%
echo.
echo.
echo    Data atual: %data%  - Hora Atual: %hora%         
echo    Computador: %computername%  -  Usuario: %username% 
echo.
echo    Autor: Evaldo Soares 
echo    Contato: [email protected]
echo.

Call :ColorText 0f ---------------------------------------------------------------
echo.
echo.
for /f "delims=" %%a in ('ipconfig ^| findstr IPv4') do set nome=%%a & set nome=!nome::=! & call :ColorText 0f "!nome!" & echo.                                     
Call :ColorText 0f ---------------------------------------------------------------
echo.
echo.
pause

msg "%username%" Informe o número de IP ao Suporte.

goto start
exit

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof

 

zpJ7QLS.gif

@evaldo soaresUma dúvida: porque você colocou o script para ficar repetindo e não finalizar depois que mostra o IP pela primeira vez, sempre volta pro start...

 

Nossa ficou muito bom. Eu retirei o processo de repetição. Obrigado!

Se não for pedir muito, eu fiz um outro bat como uma entrada de programa, Gostaria que apenas o logotipo da empresa ficasse por exemplo da cor branca. Quebrei a cabeça, tentei adaptar conforme o que você fez no outro exemplo, porém justamente o logotipo CEMA desaparece no bat.

Você poderia verificar onde está o erro por favor. O Script ta todo pronto. Aqui o logo fica meio desconfigurado mas se colar no Txt ele ajusta.

 

@echo off
title Help Desk - CEMA
:home
mode 75,30
color f
SETLOCAL EnableDelayedExpansion
ECHO.
echo    =====================================================================
ECHO                         AJUDA [ HELP DESK ]
echo    =====================================================================
echo.   
Call :ColorText 0f        ###########    #############   #####       #####   ###########    
Call :ColorText 0f       #############   #############   ######     ######  #############
Call :ColorText 0f       ####     ####   ####            #######   #######  ####     ####
Call :ColorText 0f       ####            #############   #### ####### ####  ####     #### 
Call :ColorText 0f       ####            #############   ####  ###### ####  #############
Call :ColorText 0f       ####     ####   ####            ####   ####  ####  #############
Call :ColorText 0f       #############   #############   ####    ##   ####  ####     ####                                                                  
Call :ColorText 0f        ###########    #############   ####         ####  ####     ####
ECHO.
echo    =====================================================================
ECHO               CEMA - CENTRAL MINERIA ATACADISTA LTDA
ECHO.       Departamento de Tecnologia da informacao - Equipe Ceasa
echo    =====================================================================
echo.
for /f "skip=1" %%x in ('wmic COMPUTERSYSTEM get SystemType') do if not defined system-xnn set system-xnn=%%x
color E
set data=%date:~6,4%-%date:~3,2%-%date:~0,2%
set hora=%time:~0,2%:%time:~3,2%
echo.
echo    Data atual: %data%  - Hora Atual: %hora%         
echo    Computador: %computername%  -  Usuario: %username% 
echo    Autor: Evaldo Soares 
echo    Contato: [email protected]
              ipconfig | findstr IPv4  
echo.
echo    =====================================================================
ECHO.
ECHO.
pause
exit

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
 

 

 

Muito obrigado !

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá @evaldo soares, por favor use o botão de código para postar código.

Nv2vfYH.png

Não sei se entendi direito o que você quer fazer primeiro você coloca o texto geral em branco, depois muda a parte do logotipo para branco e depois coloca o texto geral em amarelo...

 

Também está faltando a parte onde é definida a variável %DEL%:

for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "DEL=%%a"

 

Seria o texto geral em amarelo e a parte do logotipo em branco isso?

 

@echo off
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "DEL=%%a"
title Help Desk - CEMA
:home
mode 75,35
color e
SETLOCAL EnableDelayedExpansion
ECHO.
echo    =====================================================================
ECHO                         AJUDA [ HELP DESK ]
echo    =====================================================================
echo.   
Call :ColorText 0f "        ###########    #############   #####       #####   ########### " 
echo.
Call :ColorText 0f "       #############   #############   ######     ######  #############"
echo.
Call :ColorText 0f "       ####     ####   ####            #######   #######  ####     ####"
echo.
Call :ColorText 0f "       ####            #############   #### ####### ####  ####     ####" 
echo.
Call :ColorText 0f "       ####            #############   ####  ###### ####  #############"
echo.
Call :ColorText 0f "       ####     ####   ####            ####   ####  ####  #############"
echo.
Call :ColorText 0f "       #############   #############   ####    ##   ####  ####     ####"                                                                  
echo.
Call :ColorText 0f "        ###########    #############   ####         ####  ####     ####"
ECHO.
echo.
echo    =====================================================================
ECHO               CEMA - CENTRAL MINERIA ATACADISTA LTDA
ECHO.       Departamento de Tecnologia da informacao - Equipe Ceasa
echo    =====================================================================
echo.
for /f "skip=1" %%x in ('wmic COMPUTERSYSTEM get SystemType') do if not defined system-xnn set system-xnn=%%x
set data=%date:~6,4%-%date:~3,2%-%date:~0,2%
set hora=%time:~0,2%:%time:~3,2%
echo.
echo    Data atual: %data%  - Hora Atual: %hora%         
echo    Computador: %computername%  -  Usuario: %username% 
echo    Autor: Evaldo Soares 
echo    Contato: [email protected]
              ipconfig | findstr IPv4  
echo.
echo    =====================================================================
ECHO.
ECHO.
pause
exit

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof

 

N9F1RHH.png

 

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Sobre a parte de como usar asterisco no lugar da senha: (youtube)

 

@echo off
chcp 1252 > nul
for /f %%a in ('"prompt;$H&for %%b in (0) do rem"') do set "BS=%%a"
title Sistema de login
:home
echo.
echo /====================================\
echo :     Coloque seu usuario e senha para poder    :
echo : entrar no computador.                                        :
echo \====================================/
echo.
set/p user="Usuario: "
if "%user%"== "evaldo" goto pass
msg * ERRO! Usuario invalido.
goto home
:pass
set pwd=
call :EsconderSenha pwd "Senha privada: "

if "%pwd%"== "senha" msg * Bem-vindo %user%! Hoje e %date%. & exit
msg * ERRO! Senha privada invalida ou não reconhecida.
goto pass 

:: Aqui continua o codigo

exit

:EsconderSenha
set "_Senha="
set /p "=%~2" <nul 
:keyLoop
set "key="
for /f "delims=" %%a in ('xcopy /l /w "%~f0" "%~f0" 2^>nul') do if not defined key set "key=%%a"
set "key=%key:~-1%"
if defined key (if "%key%"=="%BS%" (if defined _Senha (set "_Senha=%_Senha:~0,-1%" set /p "=!BS! !BS!"<nul)) else (
set "_Senha=%_Senha%%key%" & set /p "=*"<nul) & goto :keyLoop)
echo/
set "%~1=%_Senha%"
goto :eof

 

VU2We6R.gif

 

Uma dica para que os acentos não saiam bagunçado:

 

hU0ahBr.jpg

 

No início do código coloque:

chcp 1252 > nul

E salve o arquivo .bat no formato ANSI...

 

fAyKYLm.png

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Opa. Bom demais Ricardo ???

Ficou muito bom. Muito obrigado !

Você é o cara... 

 

Só uma dúvida. Teria como a teclar enter quando pressionado em um arquivo .bat de menu por exemplo, ao invés de fecha-lo pudesse retornar por exemplo uma mensagem de "opção inválida" ou  simplesmente voltasse ao menu? porque o enter sem escolha de opções fecha o BAT. ou acessa a primeira opção do Menu, o que não deveria acontecer..

 

Valeu!!!!!!!

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Pode implementar uma opção de erro caso a pessoa não escolha uma opção válida:

 

@echo off
chcp 1252 > nul

:Menu
set Opcao=
cls
echo.
echo Escolha uma opção:
echo.
echo [1] Opção 1
echo. 
echo [2] Opção 2
echo.
echo [3] opção 3
echo.
set /p "Opcao=Opção: "

IF "%Opcao%"=="1" goto :op1
IF "%Opcao%"=="2" goto :op2
IF "%Opcao%"=="3" (goto :op3) else (goto :opcaoinvalida)

:op1
echo Você escolheu a opção 1
echo.
pause
goto :Menu

:op2
echo Você escolheu a opção 2
echo.
pause
goto :Menu

:op3
echo Você escolheu a opção 3
echo.
pause
goto :Menu

:opcaoinvalida
cls
echo.
echo  Erro!, Você não escoleu uma opção válida.
echo.
echo  Pressione uma tecla para voltar ao menu
echo.
pause > nul
goto :Menu

 

VQtkKFv.gif

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...

 

João vitor, é só você colocar o color 0c  ali onde coloquei que a cor fica certinha. 

 

 

@echo off

 

echo                          executando teste...

ping -n 4 google.com.br

if %errorlevel%==0 (

color 0a

              echo.

                         echo                    teste realizado // aqui deve ser verde

                         echo                    voce esta conectado // aqui deve ser verde

                         echo                    pressione enter para voltar ao menu

                echo.

 

) else (

 

color 0c

               echo.

                        echo                 erro durante execucao do teste // aqui deve ser vermelho

                        echo                 pressione enter para voltar ao menu

               echo.

)

pause

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 10 meses depois...

@ricardo_br assim né?

 

@echo off
CLS

set terra=terra.com.br
set inexistente=xaswedf.com.br
set verde=call:color_ir 0A "                                                               verde"
set lilas=call:color_ir 0D "                                                               lilas"

echo.
echo.

echo                                                       Verificando sites Online fica
                                    %verde%
echo                                 e offline fica
                                    %lilas%

echo.

echo                                Verificando Site Terra 
ping %terra% | find "TTL=" >nul
if errorlevel 1 (
echo                             ==============================================
call :Color_ir 0D "                                              =Site %terra% - Esta Offline   ="
echo                                                 ==============================================   
echo.
echo.
) else (
echo                              =============================================
call :Color_ir 0A "                                              = Site %terra% - Esta Online  ="
echo                              =============================================
)

echo.
echo.

echo                                   Verificando site Qualquer
ping %inexistente% | find "TTL=" >nul
if errorlevel 1 (
echo                            =================================================
call :Color_ir 0D "                                            = Site %inexistente% - Esta Offline  ="
echo                                             =================================================   
echo.
echo.
) else (
echo                             =============================================
call :Color_ir 0A "                                            = Site %inexistente% - Esta Online  ="
echo                         =================================================
)


CALL :Color_ir 0B "                                                  Pressione qualquer tecla para sair.... -"
PAUSE > NUL
goto :EOF
:Color_ir
mkdir $temp1 || (Exit /b 2)
pushd $temp1 || (rmdir $temp1 & Exit /b 1)
for /f "delims=" %%. in ('
    "%ComsPec% /K Prompt $h$h <&1"
 ') do >o_o Echo %%.
Call:Tex_to %1 %2
popd
rmdir /S /Q $temp1
Endlocal & Exit /b 0
:Tex_to
>%2 (set/P=+) <&1
findstr /a:%1 + %2 con
type o_o
GOTO :EOF
 

linha cor.jpg

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...