Interrupção interrompida

1

Como eu criaria um arquivo de lote com um loop interrompido? No momento eu tenho um arquivo com uma espécie de sentimento de matriz que faz isso ...

:start

echo %random%%random%%random%%random%

goto start

mas eu também gostaria que ficasse com a tela clr e exibisse um monte de pontos de exclamação, como um tipo de erro como

:start

echo !!!!!!!!!!...etc

goto start

mas como eu faria um loop interrompido assim?

... lembre-se que eu sou um pouco nova-ish demais, então eu ficaria grato por um tratamento um pouco mais especial na área de explicação de cada linha. Obrigado:) ..

    
por Xaxis 26.07.2016 / 06:32

1 resposta

2

Sua pergunta é um pouco incerta, mas suponho que você queira que o programa exiba o erro em momentos aleatórios. Para isso, você pode usar um gerador de números aleatórios.

set /a rndm=%random% * 10 / 32768 + 1

Esse código criará uma variável chamada "rndm" (isso não precisa ser chamado de rndm, você pode nomear como quiser), que é um número aleatório entre 1 e 10. Se você quiser um maior ou menor conjunto de números possíveis, você pode alterar os 10 no código para o que quiser. Então, se você quer um número aleatório entre 1 e 3, você faria isso:

set /a rndm=%random% * 3 /32768 + 1

Você pode usar isso para gerar uma chance aleatória do erro acontecer. Se você quiser ter uma chance em 10 de sair do loop, limpando a tela e inserindo um loop diferente, você quer que seu código fique assim:

@echo off :start echo %random%%random%%random%%random% set /a rndm=%random% * 10 / 32768 + 1 if %rndm% == 1 goto errorstart goto start :errorstart cls :error echo !!!!!!!!!!!! goto error

Enquanto o loop está em execução, o programa gera um número aleatório entre 1 e 10. Logo após, verifica se o número gerado é 1. Se não for 1, continua o loop. Se for, salta para o rótulo "errorstart". O comando abaixo do rótulo errorstart limpa a tela. O programa então entra no loop de erro, onde ecoa pontos de exclamação até que o programa seja fechado.

Este código deve dar o efeito que você está procurando, mas 1 em 10 é um pouco alto demais para um programa que funciona tão rápido, então você pode querer mudar isso para 1 em 1000 ou 1 em 10.000 . Isso deve fazer o loop inicial durar mais tempo antes que o loop secundário entre em ação.

    
por 13.08.2016 / 20:41