Índice:

Arquivos em lote: alguns princípios básicos : 8 etapas
Arquivos em lote: alguns princípios básicos : 8 etapas

Vídeo: Arquivos em lote: alguns princípios básicos : 8 etapas

Vídeo: Arquivos em lote: alguns princípios básicos : 8 etapas
Vídeo: Aula - Métodos de Arquivamento 2024, Setembro
Anonim
Arquivos em lote: alguns princípios básicos…
Arquivos em lote: alguns princípios básicos…

Este Instructable vai lhe ensinar algumas noções básicas de escrever arquivos em lote e vai mostrar como criar um jogo de adivinhação de números com algumas torções, apenas para manter as coisas interessantes …

Aprendi a maior parte das minhas habilidades de prompt de comando e toda a minha escrita em lote na Internet em geral e no Instuctables em particular. Gostaria de agradecer ao usuário Neodudeman do Instructables por seu excelente Instructables na escrita em lote. Obrigado!

Etapa 1: O que é um arquivo de lote?

O que é um arquivo de lote?
O que é um arquivo de lote?

Bem, a maioria dos meus leitores provavelmente já sabe o que é um arquivo em lote, mas apenas no caso….

Um arquivo em lote é simplesmente uma coleção (lote) de comandos MSDOS que são executados sequencialmente quando você executa o arquivo em lote. Os arquivos em lote começam como arquivos.txt no bloco de notas e se tornam arquivos executáveis quando você os salva como algo com uma extensão.bat. Então, basicamente, tudo o que você faz é escrever um arquivo no Bloco de Notas e salvá-lo como, digamos, "instructable.bat". Uma vez que o.bat é colocado no final do nome do arquivo, um novo e legal arquivo aparecerá, com o nome que você tiver, com um ícone bonito, parecido com uma engrenagem. Ok, agora que sabemos o que são esses arquivos em lote, vamos começar a escrever!

Etapa 2: Comandos básicos

Comandos Básicos
Comandos Básicos
Comandos Básicos
Comandos Básicos
Comandos Básicos
Comandos Básicos
Comandos Básicos
Comandos Básicos

Tudo bem, você vai precisar aprender alguns comandos. Portanto, primeiro, abra o prompt de comando do MSDOS. Abra a janela inicial, clique em Executar, digite "cmd.exe" e clique em Executar. Okay. Primeiro, vamos examinar as variáveis. Variáveis são números, palavras ou outras coisas que, (um tanto obviamente), variam. O Prompt de Comando tem uma função variável. Possui algumas variáveis já configuradas, como HORA, DATA e algumas outras. A maioria das variáveis, entretanto, você mesmo pode definir. Clique na janela do Prompt de Comando e digite: SET variable = random. Realmente não importa se você coloca "SET" em maiúscula ou não, mas gosto de colocar todos os meus comandos em maiúscula, especialmente ao escrever arquivos em lote. Isso apenas torna mais fácil saber o que você está fazendo. Agora, pressione Enter. Bom para você! Você definiu sua primeira variável! Mas o que podemos fazer com isso? quem se importa se tudo o que podemos fazer é definir a variável certa? Bem, ao que parece, podemos fazer muito mais do que isso, mas, primeiro, vamos tentar fazer com que o computador nos diga como a variável está definida. Ok, para fazer o computador ler o valor de uma variável, digitamos o nome da variável, neste caso, "variável" e colocamos o nome entre as marcas%, assim:% variável%. Vá em frente e digite isso e pressione Enter:% variable% Erro estranho hein? O computador disse que "a 'variável' não é reconhecida como um comando interno ou externo, programa operável ou arquivo em lote." Então, por que deu esse erro? Bem, basicamente, ele deu esse erro porque o Prompt de Comando trata o valor daquela variável como se você mesmo o tivesse digitado. Então, quando você digitou% variable%, o computador pensou que você estava dizendo a ele para executar o comando "random". Obviamente, precisamos de algo mais para ver o valor de nossa variável. É aqui que entra o comando ECHO. O comando ECHO simplesmente diz ao Prompt de Comando para ecoar, ou dizer, tudo o que você digitou após ECHO. Portanto, se digitarmos o comando ECHO antes de nossa variável, devemos obter o que queremos: ECHO% variável% Pronto! Agora temos o que queremos! O computador imprime "aleatoriamente". Obviamente, esse foi o valor que digitamos para nossa variável, então é o resultado que queríamos. Na próxima etapa, aprenderemos mais sobre variáveis e como podemos usá-las.

Etapa 3: usando o comando SET e as variáveis

Usando o comando SET e variáveis
Usando o comando SET e variáveis
Usando o comando SET e variáveis
Usando o comando SET e variáveis

Ok, agora que sabemos o que são variáveis, o que mais podemos fazer com elas? Bem, podemos fazer matemática, podemos usá-los como condições para escrever programas e arquivos em lote, podemos fazer aritmética básica, podemos executar comandos e muito mais. Não entraremos em tudo o que você pode fazer com variáveis, mas discutiremos alguns aspectos importantes da função de variável. Primeiro, o comando SET por si só produz variáveis de string. Isso significa que ele não adicionará ou fará nenhuma outra matemática. Se você dissesse ao computador para adicionar 1 a uma variável com valor 1, ele lhe daria o valor 1 + 1. Se quisermos realmente somar os dois números, precisamos colocar um "/ a" após o comando SET. Portanto, digitamos: SET / a varible = (valor) Agora, suponha que queremos colocar uma variável em nosso arquivo em lote que o usuário fornecerá. Podemos querer fazer isso se estivéssemos computando valores de acordo com uma fórmula ou, em nosso caso, se quisermos que o usuário adivinhe um número que o computador criou. Para gerar uma variável especificada pelo usuário, adicionamos a / p após o comando SET, e deixamos a área após = em branco: variável SET / p = Pronto! Uma variável especificada pelo usuário! Se colocarmos essa linha em um arquivo de lote, o lote será executado até atingir essa linha e, em seguida, esperará pela entrada do usuário antes de continuar. A outra coisa legal sobre o / p é que ele nega completamente o / a. Quando incluímos a / p, podemos simplesmente omitir o / a. A próxima coisa que aprenderemos sobre a produção de variáveis aleatórias. Se quisermos que o computador escolha um número aleatório para uma variável, simplesmente digitamos o comando SET, seguido pela variável e, em seguida, definimos a variável para igual a% RANDOM%. Mais uma vez, não precisa ser maiúsculo, mas gosto de fazer mesmo assim. Então, digitamos: SET / a variable =% RANDOM% Obviamente, esta não é uma variável especificada pelo usuário, então incluímos / a. Legal! Agora sabemos como produzir um número aleatório! Mas quão aleatório é? Bem, acontece que o computador escolhe um número entre 0 e algo em torno de 37.000. Não tenho certeza de qual é o número exato. Mas e se quisermos um número menor? Suponha que, como neste Instructable, queiramos um número gerenciável para algo como um jogo de adivinhação. Bem, é aí que entra o comando IF….

Etapa 4: Os comandos IF e GOTO. O poder nas mãos do redator em lote

Os comandos IF e GOTO. O poder nas mãos do redator em lote
Os comandos IF e GOTO. O poder nas mãos do redator em lote

Portanto, queremos produzir um número gerenciável. Vamos supor que queiramos produzir um número aleatório entre 1 e 20. Ok, isso é fácil de dizer, mas o valor RANDOM escolhe um número entre 1 e 37.000. É para isso que vamos usar IF. O comando IF basicamente diz SE algo acontecer, ou SE algo for igual ou não igual a um determinado valor, ENTÃO faça ISTO. Portanto, IF define comandos condicionais. Queremos produzir um número que seja menor que vinte, mas maior que um, obviamente, começaremos dizendo ao computador para escolher um número aleatório, mas então precisaremos ser capazes de dizer a ele para escolher um novo número se o número escolhido não atender aos nossos requisitos. É aí que entra o comando GOTO. GOTO simplesmente diz ao computador para IR PARA um determinado rótulo no código. Os rótulos têm a seguinte aparência: pickQualquer palavra colocada após os dois pontos torna-se um rótulo que podemos acessar com o comando GOTO. Então, se quisermos ir para a seção de código com o rótulo "pick" acima dela, simplesmente digitamos: GOTO pickAlright, então vamos continuar com nossa codificação. Já dissemos ao computador para escolher um número aleatório, então digitamos: SET / a answer =% RANDOM% Agora queremos puxar esse número para um intervalo menor. Portanto, invocaremos o comando IF. Algo como isso deve resolver o problema: IF% resposta% GTR 20 GOTO pickIsso diz ao computador para GOTO pick SE a resposta for MAIOR que 20. Também poderíamos colocar qualquer uma dessas condições nesse comando IF: EQU - EqualNEQ - Not EqualLSS - Menor queGTR - Maior queLEQ - Menor que ou igual ToGEQ - Maior que ou igual ToThus, com IF, GOTO, rótulos e essas abreviações, podemos manipular nosso arquivo de lote da maneira que escolhermos. Ok, então temos nosso número aleatório abaixo de vinte agora, e aqui está o que temos até agora:: pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pickNow, vamos garantir que o computador não t escolha 0 para a resposta.:pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pickIF $ answer% EQU 0 GOTO pickOkay! Agora temos um número utilizável entre 1 e 20. Vamos passar para a parte principal do lote.

Etapa 5: a carne do nosso jogo

A Carne do Nosso Jogo
A Carne do Nosso Jogo

Tudo bem, nós temos nosso número aleatório. Também queremos contar quantas suposições nosso jogador faz, então definiremos outra variável: SET / a guessnum = 0 Isso define a variável geussnum como zero, e demos a ela o parâmetro / a, então seremos capazes de adicionar a ele cada vez que o usuário adivinha. Temos um número aleatório e definimos o número de suposições. Agora precisamos de algumas instruções e de alguma entrada do usuário para o número estimado. Você deve entender a maior parte disso agora, então vou apenas mostrar o código:: beginECHO Vou pensar em um númeroECHO que estou pensando….. SET / a GuessNum = 0 (Isso ECHOs essas duas linhas e define o número de suposições como 0): pickASET / a Answer =% RANDOM% IF% Answer% GTR 20 GOTO pickAIF% Answer% EQU 0 GOTO pickAECHO Estou pensando em um número entre 1 e 20ECHO Adivinhe o número que estou pensando de. (Esta seção faz um loop até DEFINIR nosso número aleatório e, em seguida, ECHOs as instruções para nosso player): RepetirSET / p Estimativa = IF% Estimativa% LSS% Resposta% ECHO Meu número é maior. IF% Estimativa% GTR% Resposta% ECHO My Number is Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO Repetir (esta seção diz ao computador para solicitar a entrada do usuário e, em seguida, faz um loop continuamente até que o usuário escolha o número correto. A seguir, VAI PARA a etiqueta END): ENDECHO Você está correto! A resposta foi% Resposta% ECHO Demorou% GuessNum% Guesses. ECHO. PAUSECLSECHO Gostaria de jogar novamente? ECHO S / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain (Esta é a nossa seção final. Isso diz ao usuário quantas tentativas ele deu, e então pergunta se ele gostaria para jogar novamente. Observe que também podemos usar EQU, GTR e LSS com as letras.) Ok! Se você simplesmente copiasse esse código, teria um jogo legítimo de adivinhação. Não é muito chique, mas ei, é melhor do que a maioria das pessoas pode fazer. Mas vamos adicionar um pequeno toque, apenas para tornar as coisas interessantes….

Etapa 6: The Twist

The Twist
The Twist
The Twist
The Twist
The Twist
The Twist

Agora, temos um jogo que funciona agora, mas queremos torná-lo um pouco mais interessante. Que tal adicionar algum incentivo para o nosso jogador adivinhar o número certo? Que tal fazermos algo como … desligar o computador se eles não adivinharem o número? Isso seria muito legal! Ok, agora vamos adicionar um pequeno código para fazer essas alterações. Primeiro, vamos adicionar uma linha à seção do código rotulada como "repetir". Então vá encontrar essa seção. É parecido com:: RetrySET / p Guess = IF% Guess% LSS% Answer% ECHO Meu número é maior. IF% Guess% GTR% Answer% ECHO Meu número é Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO RetryOk, vamos adicionar esta linha logo após o "ECHO." (Quando colocamos um ponto após ECHO, ele deixa uma linha em branco.) Aqui está o novo código: IF% GuessNum% EQU 4 GOTO shutdownG Quando adicionamos esta linha, a seção fica assim:: RetrySET / p Guess = IF% Guess% LSS% Resposta% ECHO Meu número é superior. IF% Palpite% GTR% Resposta% ECHO Meu número é inferior. IF% Palpite% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdownGGOTO RetryBy agora, deve ser bastante óbvio o que isso faz. Ele informa ao computador que se GuessNum for igual a 4, ele deve ir para a seção do código chamada "shutdownG". Então, o que queremos que esta seção de desligamento diga? Bem, obviamente, ele deve ser rotulado como "shutdownG". Em seguida, ele deve desligar o computador. O comando para desligar é "SHUTDOWN -s". Isso desligará o computador, mas queremos adicionar alguns ao comando. Vamos adicionar um "-f". Isso forçará o fechamento de todos os programas e adicionaremos um "-t 60". Isso fará com que o computador exiba uma janela e espere sessenta segundos para fechar. Também adicionaremos a mensagem "-c" aqui "". que exibirá uma mensagem na janela de desligamento. Depois de nosso comando de desligamento, adicionaremos o mesmo código que temos acima, o código que permite ao nosso jogador escolher números e dar-lhes feedback. Portanto, nosso código de desligamento agora se parece com este:: shutdownGSHUTDOWN -s -f -t 60 -c "Continue adivinhando! Se você não adivinhar o número certo, o computador desligará!": shutdownG1SET / p Guess = IF% Guess% LSS% Answer% ECHO Meu número é maior. IF% Guess% GTR% Answer % ECHO My Number is Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1Agora configuramos o computador para SHUTDOWN e exibimos uma mensagem, mas também precisamos informar o computador para interromper o desligamento, se tiver sido iniciado. Então, vamos adicionar isso à seção de codificação rotulada como "fim". Essa seção se parece com isto: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO Você está correto! A resposta foi% Resposta% ECHO Demorou% GuessNum% Guesses. ECHO. PAUSECLSECHO Gostaria de jogar novamente? ECHO S / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagainNós queremos parar o desligamento e fazemos isso com o comando "SHUTDOWN -a". Então, vamos adicionar uma linha mais ou menos assim: IF% GuessNum% GTR 4 SHUTDOWN -a Vamos adicionar esse comando logo após o rótulo, e isso dirá ao computador para executar o comando SHUTDOWN -a apenas se o jogador tiver fez mais de quatro suposições e iniciou um desligamento. OK! você deve ter seu jogo terminado agora! Vamos nos certificar de que não haja nenhum bug na próxima etapa.

Etapa 7: etapas finais

Passos Finais
Passos Finais

Ok, agora se você juntou toda aquela codificação, então você terá algo parecido com isto:: beginECHO Vou pensar em um númeroECHO que estou pensando….. SET / a GuessNum = 0: pickASET / a Resposta =% RANDOM% IF% Resposta% GTR 20 GOTO pickAIF% Resposta% EQU 0 GOTO pickAECHO Estou pensando em um número entre 1 e 20ECHO Adivinhe o número em que estou pensando.:RetrySET / p Guess = IF% Guess % LSS% Resposta% ECHO Meu número é maior. IF% Palpite% GTR% Resposta% ECHO Meu número é inferior. IF% Palpite% ==% Resposta% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdownGGOTO Tentar novamente: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO Você está correto! A resposta foi% Resposta% ECHO Demorou% GuessNum% Guesses. ECHO. PAUSECLSECHO Gostaria de jogar de novo? ECHO S / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain: closeECHO Obrigado por jogar! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Continue adivinhando ! Se você não adivinhar o número correto, o computador será desligado! ": ShutdownG1SET / p Guess = IF% Guess% LSS% Answer% ECHO Meu número é maior. IF% Guess% GTR% Answer% ECHO Meu número é Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1Isso deve ser tudo o que precisamos, certo? Então, vá em frente e salve o arquivo.txt do bloco de notas que você tem como GuessGame.bat. Na verdade, você pode nomeá-lo como quiser, desde que coloque o.bat no final. Ok, então clique no ícone e execute o programa! Funcionou? Bem sorta. Está fazendo coisas estranhas, não é? Acontece que, quando escrevemos um lote como este, o prompt de comando ecoa cada comando que fornecemos, como se os tivéssemos digitado no prompt de comando. Então o jogo funciona, mas é um pouco confuso e confuso. Podemos fazer algo sobre isso? Sim! Tudo o que temos que fazer é digitar esta linha bem no início do nosso código: @ECHO OFFIsso diz ao computador para desligar o ECHO. E o sinal @ no início diz para desligar o ECHO para cada comando. Se deixássemos @ de fora, ele apenas desligaria o ECHO para um comando.

Etapa 8: Tudo pronto

Parabéns! Você acabou de escrever um jogo de arquivo em lote. Muito simples, não é? Se você pode lidar com isso, então você pode descobrir como fazer um pouco com arquivos em lote. Apenas brinque com ele, faça alguns experimentos. No caso de você não conseguir fazer algo funcionar, ou no caso de eu ter deixado algo de fora em toda aquela codificação, eu lhe darei o arquivo aqui.

Recomendado: