Ir ao conteúdo
  • Cadastre-se

Outro (BATCH) Como extrair texto de variável usando número e repetir


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Boa tarde! Alguém pode me ajudar com esse código pfv?
cof cof @ricardo_br cof cof
Vou dar uma explicada no que eu quero...
Estou criando uma ferramenta para TOCAR MÚSICAS pelo cmd.
Já tenho o script de tocar áudios funcionando.
Eu quero fazer o seguinte:
Se eu digitar "musica 123454321,1,2.3;4;5" ele deve tocar os audios nessa maneira (por exemplo):


1.wav   2.wav   3.wav   4.wav   5.wav   4.wav   3.wav   2.wav   1.wav   ,(ESPERAR 25MS)   1.wav  ,(ESPERAR 25MS)   2.wav   .(ESPERAR 50MS)   3.wav   ;(ESPERAR 1S)   4.wav   ;(ESPERAR 1S)   5.wav

Eu primeiramente teria que coletar a 2 sintaxe do comando (123454321,1,2.3;4;5) e depois ler esse código caractere por caractere (Ler 1, depois ler 2, ...) - Mas eu não sei fazer isso!
Eu ACHO que deveria criar um loop que lesse o caractere atual na variável %caractere% e usar um if else pra detectar qual audio (ou qual pausa) que é e ir repetindo até não ter mais caractere - ai quando acontecer isso ele reseta a variavel e dá um echo: Música tocada com sucesso!

Alguém aí pode me ajudar??? Não faço ideia de quais comandos usar, manipulação de texto no CMD não é comigo :(

PS: Em relação ao script de áudio nn precisa incluir, ele já ta pronto - meu script cria um arquivo vbs temporario e executa o audio pelo vbs e dps o vbs se auto destroi - e o audio toca bem rápido

Link para o comentário
Compartilhar em outros sites

10 minutos atrás, Felipecconde disse:

Se eu digitar "musica 123454321,1,2.3;4;5" ele deve tocar os audios nessa maneira (por exemplo):


1.wav   2.wav   3.wav   4.wav   5.wav   4.wav   3.wav   2.wav   1.wav   ,(ESPERAR 25MS)   1.wav  ,(ESPERAR 25MS)   2.wav   .(ESPERAR 50MS)   3.wav   ;(ESPERAR 1S)   4.wav   ;(ESPERAR 1S)   5.wav

 

Quando encontra uma virgula esperar 25 ms, quando encontra . esperar 50 MS quando encontra ; esperar 1 Segundo?

 

Exatamente, criar um loop que analisa caractere por caractere...algo parecido com isso:

 

@echo off
SetLocal EnableDelayedExpansion
set Nome=Ricardo Bohner
set Contador=0

:loop
set Letra=!Nome:~%Contador%,1!
echo/ %Letra%
Timeout /t 1 >nul
set /a Contador+=1
IF Defined Letra goto :loop
:EOF

pause

 

cJI7RgO.gif

 

 

 

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

  • Solução

Tente algo assim, só que ao invés de echo nos if você manda rodar o vbs...

 

@echo off
SetLocal EnableDelayedExpansion
set "Comando=123454321,1,2.3;4;5"
set Contador=0
echo.

:loop
set caractere=!Comando:~%Contador%,1!
IF "%caractere%"=="1" echo  Executando 1.wav
IF "%caractere%"=="2" echo  Executando 2.wav
IF "%caractere%"=="3" echo  Executando 3.wav
IF "%caractere%"=="4" echo  Executando 4.wav
IF "%caractere%"=="5" echo  Executando 5.wav
IF "%caractere%"=="6" echo  Executando 6.wav
IF "%caractere%"=="7" echo  Executando 7.wav
IF "%caractere%"=="8" echo  Executando 8.wav
IF "%caractere%"=="9" echo  Executando 9.wav
IF "%caractere%"=="," echo  Aguardando 25 MS
IF "%caractere%"=="." echo  Aguardando 50 MS
IF "%caractere%"==";" echo  Aguardando 1 Segundo

Timeout /t 1 >nul
IF Defined caractere set /a Contador+=1 & goto :loop
:EOF
echo.
pause

 

 

Também da para fazer a mesma coisa usando um For /L:

 

@echo off
SetLocal EnableDelayedExpansion
set "Comando=123454321,1,2.3;4;5"
echo.

for /l %%a in (0,1,1000) do (
set caractere=!Comando:~%%a,1!
IF NOT Defined caractere goto :End
IF "!caractere!" == "1" echo  Executando 1.wav
IF "!caractere!" == "2" echo  Executando 2.wav
IF "!caractere!" == "3" echo  Executando 3.wav
IF "!caractere!" == "4" echo  Executando 4.wav
IF "!caractere!" == "5" echo  Executando 5.wav
IF "!caractere!" == "6" echo  Executando 6.wav
IF "!caractere!" == "7" echo  Executando 7.wav
IF "!caractere!" == "8" echo  Executando 8.wav
IF "!caractere!" == "9" echo  Executando 9.wav
IF "!caractere!" == "," echo  Aguardando 25 MS
IF "!caractere!" == "." echo  Aguardando 50 MS
IF "!caractere!" == ";" echo  Aguardando 1 Segundo
Timeout /t 1 >nul
)

:End
pause

 

 

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!