Ir ao conteúdo
  • Cadastre-se

Outro (batch) erro no script de echo que está deletando diretórios!


Posts recomendados

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!

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

19 horas atrás, 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

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.)

Link para o comentário
Compartilhar em outros sites

@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).

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...