Ir ao conteúdo

Posts recomendados

Postado

Boa tarde! Eu achei este código na internet para escrever texto com echo colorido:

@echo off

:: ECHO COLORIDO
:c
>%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 >NUL 2<&1

:: TESTE
echo Texto normal
call:c fb "Texto colorido"

Mas a questão é que por algum motivo, quando eu digito algo como por exemplo...:

call:c fb "%cd%"

...Ele me retorna isto:

C:\Users\Usuario\Desktop\Projetos\*, Tem certeza (S/N)?    

E se eu digito "S" ele deleta o meu arquivo .bat - E isto acontece com qualquer diretório que eu digito: Ele deleta o diretório em si.

Se eu digito "@echo on", me é retornado isto:
 

C:\Users\Usuario\Desktop\Projetos>(set/p=. ) 1>"C:\Users\Usuario\Desktop\Projetos>" 0<&1
Acesso negado.

C:\Users\Usuario\Desktop\Projetos>findstr /a:fb . "C:\Users\Usuario\Desktop\Projetos" con   & erase "C:\Users\Usuario\Desktop\Projetos"
C:\Users\Usuario\Desktop\Projetos\*, Tem certeza (S/N)?


Não entendi muito esse script, mas pelo o que eu ACHO que entendi, ele ao invés de deletar o texto "%cd%" ("C:\Users\Usuario\Desktop\Projetos"), ele deleta O DIRETÓRIO "C:\Users\Usuario\Desktop\Projetos".

Alguém pode me ajudar???
Mito @ricardo_br?
Alguém aí no fórum?

Grato!

Postado

Realmente esse código não permite colocar caminhos porque a tecnologia dele é baseada em verificar se um caminho existe. Tente outro desses:

https://stackoverflow.com/questions/2048509/how-to-echo-with-different-colors-in-the-windows-command-line

 

Esse exemplo é usando o powershell dentro do bat parece bem simples...

 

@echo off
chcp 1252 > Nul

:Inicio
cls
echo.
set /p "Cor=Escolha uma Cor: (V)erde | v(E)rmelho | (A)zul: "
echo.
set /p "Texto=Digite um texto: "
echo.
IF /i [%Cor%]==[V] Call :Cor Green "%Texto%"
IF /i [%Cor%]==[E] Call :Cor Red "%Texto%"
IF /i [%Cor%]==[A] Call :Cor Blue "%Texto%"
echo.
echo.
pause
goto :Inicio

exit
:Cor
powershell Write-host -fore %~1 %~2	
goto :eof

 

No caso se quiser mudar a cor de fundo ao invés da cor da fonte use:

 

powershell write-host -back %~1 %~2

 

sVl4oRI.gif

  • Curtir 1
Postado
  Em 08/01/2021 às 09:35, ricardo_br disse:

Realmente esse código não permite colocar caminhos porque a tecnologia dele é baseada em verificar se um caminho existe. Tente outro desses:

https://stackoverflow.com/questions/2048509/how-to-echo-with-different-colors-in-the-windows-command-line

 

Esse exemplo é usando o powershell dentro do bat parece bem simples...

 

@echo off
chcp 1252 > Nul

:Inicio
cls
echo.
set /p "Cor=Escolha uma Cor: (V)erde | v(E)rmelho | (A)zul: "
echo.
set /p "Texto=Digite um texto: "
echo.
IF /i [%Cor%]==[V] Call :Cor Green "%Texto%"
IF /i [%Cor%]==[E] Call :Cor Red "%Texto%"
IF /i [%Cor%]==[A] Call :Cor Blue "%Texto%"
echo.
echo.
pause
goto :Inicio

exit
:Cor
powershell Write-host -fore %~1 %~2	
goto :eof

 

No caso se quiser mudar a cor de fundo ao invés da cor da fonte use:

 

powershell write-host -back %~1 %~2

 

sVl4oRI.gif

Expandir  

O único problema é que não quero utilizar o Powershell, estou fazendo de tudo pro meu Batch ser compatível com versões abaixo do Windows 10 também... (W7 não tem powershell, por exemplo.)

Postado

@ricardo_br Opa! Na realidade não...
O CMD é meio dependente do Powershell se quisermos fazer outras coisas, mas não queria usá-lo pois quero que meu script seja compatível com outras versões do Windows (fora o 10) também...
Eu queria um comando que fosse igual a o que achei (você especifica as cores de acordo com o comando "color" do CMD, mas que escreva-o em uma linha somente).

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...