Índice:

Lote avançado: 12 etapas
Lote avançado: 12 etapas

Vídeo: Lote avançado: 12 etapas

Vídeo: Lote avançado: 12 etapas
Vídeo: 🔴 AS ETAPAS PARA CHEGAR NO NÍVEL AVANÇADO. 2024, Julho
Anonim

mas tudo bem, simplesmente use o comando CD ou CHDIR para mudar de diretório. Mas isso realmente não importa neste caso. "," Superior ": 0,08480565371024736," esquerda ": 0,014285714285714285," altura ": 0,8586572438162544," largura ": 0,9357142857142857}]">

Lote Avançado
Lote Avançado
Lote Avançado
Lote Avançado
Lote Avançado
Lote Avançado

POR FAVOR, ENVIE QUALQUER PERGUNTA QUE VOCÊ POSSA TER PARA O MEU BLOG: https://tamsanh.com/blog/2008/07/11/batch-tutorial-3-advanced-batch/Eu não visito instructables mais, e você obterá um mais rápido resposta dessa forma. Ei pessoal! Tam Nguyen aqui. Já faz muito tempo, mas agora está aqui! Apresento a você a próxima parte dos meus Tutoriais em lote! Você pode (ou não) ter lido meus outros instructables: Noções básicas de BatchSlightly More Advanded BatchThis Instructable toma emprestado alguns elementos dos dois primeiros Instructables. A saber: ECHO CommandCD CommandDIR CommandSe você não leu os outros dois, sugiro que examine esses comandos rapidamente. Vou esperar aqui. Ok! Ao final deste Instructable, você estará íntimo com: START CommandSET CommandIF CommandGOTO Command e> e >> Parâmetros Com esses comandos, você será capaz de criar arquivos de lote dinâmicos que podem mudar de acordo com a entrada do usuário, e criar e expandir. Então, vamos abrir aquele bom e velho Prompt de Comando e começar! Execute -> cmdAlternativamente, você pode ir para: Iniciar-> Arquivos de Programas-> Acessórios-> Prompt de ComandoMinhas explicações neste instrutível ficaram um pouco longas, então dividi alguns comandos em mais de uma página, principalmente para fins estéticos; Gostei de ver as fotos enquanto lia o texto, sem ter que rolar para cima e para baixo. Regra do polegar para visualização de fotos; Normalmente, após cada snippet de código, há uma imagem. Divirta-se!

Etapa 1: Comando INICIAR

Comando START
Comando START
Comando START
Comando START
Comando START
Comando START
Comando START
Comando START

O comando START é um pequeno comando agradável que inicia as coisas! É um comando simples e nos ajudará a aquecer antes de chegarmos aos comandos mais difíceis. Os parâmetros do comando são exatamente o que você pensa que são.

INICIE ThingToBeStarted.exeBem simples

INICIE WMPlayer.exeVocê não só pode INICIAR.exe, mas também pode digitar um site e ele será aberto em seu navegador padrão

INICIE www. Instructables.comMuito fácil, hein? OK. Agora vamos passar para a verdadeira carne do Instructable: Comando SET.

Etapa 2: Comando SET - Teoria das Cordas (1/4)

Comando SET - Teoria das Cordas (1/4)
Comando SET - Teoria das Cordas (1/4)
Comando SET - Teoria das Cordas (1/4)
Comando SET - Teoria das Cordas (1/4)

O comando SET: The Variable Definer. Ah. Variáveis. A ambrosia do desenvolvedor. Variáveis são bits de memória que são … err, variáveis. Sem IFs ANDs ou NOTs sobre isso! (lol desculpa). OK! Então, como este bebê funciona? Muito simplesmente, os parâmetros do comando SET são: SET VariableName = Variable ValueSET por si só criará variáveis de string.

SET TestVS = String da variável de teste!Nesse caso, apenas armazenamos o valor "Test Variable String!" na variável TestVS. Bem, isso é tudo diversão e jogos, mas como recuperamos o valor da variável? Usamos%. Basta adicionar% ao redor do nome da variável

ECHO% TestVS%Ok legal, mas o que mais ele pode fazer?

Etapa 3: Comando SET - Mr. Math (2/4)

Comando SET - Mr. Math (2/4)
Comando SET - Mr. Math (2/4)
Comando SET - Mr. Math (2/4)
Comando SET - Mr. Math (2/4)
Comando SET - Mr. Math (2/4)
Comando SET - Mr. Math (2/4)

Ele pode fazer matemática? Bem, vamos fazer um lote simples para testá-lo.

@ECHO OFFSET Test = 1ECHO% Test% SET Test =% Test% -1ECHO% Test% PAUSEAww, o que aconteceu? Isso deveria ter funcionado! Espere um minuto … o que foi aquilo sobre comandos SET apenas fazendo strings? O comando SET por si só criará apenas uma variável de string, o que significa que criará a interpretação mais literal do valor. Ele não pensa em "1 - 1" igual a "0", ele pensa em "1 - 1" igual a "1 - 1." Então, como podemos mudar isso? Queremos que a variável não seja copiada diretamente, mas avaliada. Isso significa que queremos transformá-lo de uma string em uma expressão! Uma mudança muito fácil, basta adicionar a / a ao comando SET. Aqui está um arquivo batch simples para vê-lo em ação, ou você pode simplesmente digitá-lo no manual do Prompt de Comando. Eu sugiro o último; é muito mais rápido e o código não é muito complicado, mas se você realmente quiser o arquivo em lote, aqui está

@ECHO OFFSET / a Teste = 2 + 2ECHO% Teste% PAUSAFantástico! Expressou isso perfeitamente. Agora sabemos quais mudanças precisam ser feitas em nosso 'teste de matemática.bat

@ECHO OFFSET / a Teste = 1ECHO% Teste% SET / a Teste =% Teste% -1ECHO% Teste% PAUSAOK. Então, vamos executá-lo! Ótimo! Funcionou perfeitamente! Mas o que vem a seguir?

Etapa 4: Comando SET - entrada do usuário (3/4)

Comando SET - entrada do usuário (3/4)
Comando SET - entrada do usuário (3/4)
Comando SET - entrada do usuário (3/4)
Comando SET - entrada do usuário (3/4)
Comando SET - entrada do usuário (3/4)
Comando SET - entrada do usuário (3/4)

O SET também tem a capacidade de solicitar a entrada do usuário. Ao adicionar / p aos parâmetros SET, ele o transforma de um configurador de variável normal em um configurador de variável controlado pelo usuário.

SET / p UDefine =Com o / p, o programa realmente faz uma pausa e espera pela entrada do usuário. Mas espere, não vejo um parâmetro / a, isso significa que a variável é apenas uma string? Bem, mais ou menos. O / p dos parâmetros nega completamente o / a e, se você tentar, simplesmente obterá um erro de operando ausente. Isso significa que a variável definida pelo usuário não será capaz de avaliar expressões. Então, o que se pode fazer? Bem, aqui está um truque complicado que pensei que podemos usar. O Comando SET não faz todo o uso simultâneo dos parâmetros / pe / a, correto? Bem, e quanto ao uso sequencial dos parâmetros / a e / p? Ahhh… suas botas manhosas

@ECHO OFFECHO Calculadora Versão 1.0ECHO. SET / p UDefine = SET / a UDefine =% UDefine% ECHO = ECHO% UDefine% ECHO. PAUSEBela calculadora, você chegou lá. Se você ainda não descobriu, o {{{ECHO.}}} É uma linha em branco. Não é legal?

Etapa 5: Comando SET - Mais do que os olhos (4/4)

Comando SET - Mais do que os olhos (4/4)
Comando SET - Mais do que os olhos (4/4)
Comando SET - Mais do que os olhos (4/4)
Comando SET - Mais do que os olhos (4/4)
Comando SET - Mais do que os olhos (4/4)
Comando SET - Mais do que os olhos (4/4)

Neste ponto, pode parecer que as variáveis do comando SET são boas apenas para strings e expressões. Não é verdade. As variáveis são, de fato, muito flexíveis, e não se limitam apenas a ECHO. Você já tentou digitar uma variável sozinha?

Teste SET = Instructables% Teste%Que erro estranho… diz que o comando "Instructables" não é reconhecido, não que% Test% não tivesse sintaxe. Isso significa que o DOS trata cada variável como se fosse digitada à mão. Bem, e se

SET Test = START cmd.exe% Teste%Incrível! Funcionou! O DOS trata cada variável como se fosse digitada pelo usuário e a executa de acordo. Aqui está um código interessante: (Basta copiar / colar; é um pouco tedioso.

@ECHO OffSET Variable1 = ECSET Variable2 = HSET Variable3 = O CSET Variable4 = ooSET Variable5 = l! ECHO% Variable1 %% Variable2 %% Variable3 %% Variable4 %% Variable5% ECHO.% Variable1 %% Variable2 %% Variable3 %% Variable4% % Variável 5% PausaNão é legal? Cada variável contém duas letras de toda a mensagem (exceto a variável 2), e colocando as variáveis em ordem, cada letra adiciona e termina todo o comando do ECHO Cool! O comando SET é um dos comandos mais complicados e poderosos do Dicionário DOS.

Etapa 6: Comando IF - Todos são iguais (1/2)

Comando IF - Todos são iguais (1/2)
Comando IF - Todos são iguais (1/2)
Comando IF - Todos são iguais (1/2)
Comando IF - Todos são iguais (1/2)
Comando IF - Todos são iguais (1/2)
Comando IF - Todos são iguais (1/2)

Esse operando condicional clássico. Básico, mas poderoso. Para quem nunca programou antes, o comando IF é exatamente o que parece. Se uma expressão na sintaxe for verdadeira (ou NÃO verdadeira), a próxima sequência de comandos será executada. A linha de comando básica é assim:

IF% variable1% ==% variable2% ECHO Esta parte é executadaou se você tiver mais de uma sintaxe

@ECHO OFFIF% variável1% ==% variável2% (ECHO Esta parte é executada. ECHO Então é isso.) ELSE (ECHO Se a variável1 não & apost = variável 2, isso acontece. ECHO e isso também acontece.)Nota: A colocação peculiar de parênteses não é porque eu não acredito em código organizado, mas porque se eles não estiverem nesses lugares, todo o snippet IF não funcionará. Portanto, se houver algum erro com o seu código IF, é provavelmente devido ao parêntese. Para executar esse lote específico, usei o próprio Prompt de Comando, para poder definir as variáveis sem ter que editar o múltiplo IfVariableTest.bat vezes.

Etapa 7: Comando IF - Mas eu sou maior do que você (2/2)

Comando IF - Mas eu sou maior do que você (2/2)
Comando IF - Mas eu sou maior do que você (2/2)
Comando IF - Mas eu sou maior do que você (2/2)
Comando IF - Mas eu sou maior do que você (2/2)
Comando IF - Mas eu sou maior do que você (2/2)
Comando IF - Mas eu sou maior do que você (2/2)

Ok, então você tem uma boa instrução IF e tudo, e verificar se as variáveis são iguais ou não é bom e tudo, mas não se encaixa perfeitamente no projeto. Eu quero que algo aconteça se a variável1 for menor do que a outra variável! Para aqueles de nós, programadores, eu sei que isso parece uma tarefa simples. Basta fazer o que todas as outras linguagens de programação fazem! Bem, mantenha seus cavalos cowboy. Não tão rápido. Um arquivo de lote não é apenas a sua velha linguagem de programação normal. Por mais bobo que possa parecer, "" não funciona com arquivos em lote.

EQU - Igual a - == NEQ - Diferente de SLS - Menor que GTR - Maior que LEQ - Menor que ou igual a GEQ - Maior que ou igual aBasta colocar esses operandos no lugar do == Exemplo

IF 32 GTR 3 ECHO, isso funcionará

@ECHO OFFIF 32 GEQ 32 (ECHO 32 é maior que ou igual a 32) ELSE (ECHO 32 é definitivamente igual a 32) PAUSEIF 32 LSS 32 (ECHO 32 é menor que 32? Acho que não.) ELSE (ECHO 32 é Não inferior a 32. Fim da história.) PAUSA

Etapa 8: Comando GOTO

Comando GOTO
Comando GOTO
Comando GOTO
Comando GOTO
Comando GOTO
Comando GOTO

O Comando GOTO. Ele faz exatamente o que diz; ele VAI PARA um rótulo no script do arquivo em lote. Para usar este comando, você deve primeiro ter um rótulo no lugar. Os rótulos são assim:

: Label1São simplesmente dois pontos antes de uma série não espaçada de letras e / ou números. O comando GOTO é estruturado assim

GOTO Label1É tão fácil! Pensando bem, não tenho certeza de por que não coloquei isso no Lote ligeiramente avançado. Em qualquer caso, este comando pode ser usado para repetir um arquivo em lote simplesmente GOTO um rótulo que executa o comando GOTO novamente

@ECHO OFF: RepeatMeECHO Isso será repetido a menos que você pressione "CTRL-C" GOTO RepeatMeO arquivo em lote fala a verdade, a propósito. CTRL-C é a pausa e solicitação universal de rescisão. CTRL-S é simplesmente uma pausa. Mas fechar a janela funciona tão bem. O GOTO pode pular ou reordenar seu código também

GOTO TurnEOffGOTO MultipleGotoECHO Este ECHO será ignorado.:MultipleGotoGOTO 3: ENDPAUSEEXIT: 1ECHO O EndGOTO END: 3ECHO Será exibido primeiroGOTO 2: TurnEOff @ ECHO OFFGOTO MultipleGoto: 2ECHO Este é o segundo, embora seja o último no código. GO 1O código acima foi estruturado de forma confusa com o propósito de enfatizar a capacidade do GOTO de saltar pelo código.

Etapa 9:> Parâmetro (1/2)

Exemplo de implementação
Exemplo de implementação

Parâmetro (1/2) "src =" https://content.instructables.com/ORIG/FBH/P5XV/F3JESWI8/FBHP5XVF3JESWI8-j.webp

Exemplo de implementação
Exemplo de implementação

Parâmetro (1/2) "src =" https://content.instructables.com/ORIG/FIX/9BXW/F3JESWI5/FIX9BXWF3JESWI5-j.webp

Exemplo de implementação
Exemplo de implementação

Parâmetro (1/2) "src =" https://content.instructables.com/ORIG/FHZ/92ZS/F3JESWI7/FHZ92ZSF3JESWI7-j.webp

Conclusão: Notas Finais
Conclusão: Notas Finais

Parâmetro (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (1/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} "> Este próximo bit não é realmente um 'comando', mas sim uma sintaxe adicionada em outro. O que ele faz é pegar a saída de um determinado comando e pode gravá-la em um arquivo de texto. É mais fácil de explicar se você vê-lo em ação primeiro. Sua sintaxe é:

Comando> Nome do arquivoOk, digamos que estamos em um determinado diretório. Em seguida, usamos o Comando DIR, que, se você ler o Básico do Batch, saberá que mostra o conteúdo do seu diretório atual

C: / Usuários / Neo \> DIRNormalmente produziria

O volume na unidade C é o número de série do volume HP é BC7E-E26C Diretório de C: / Users / Neo06 / 30/2007 11h14.06 / 30/2007 11h14..03 / 17/2007 06:41.idlerc02 / 19/2007 15:14 Contatos06 / 19/2007 10:44 PM Desktop06 / 29/2007 08:47 AM Documentos06 / 19/2007 10:35 AM Downloads02 / 19/2007 15:14 PM Favoritos02 / 19 / 2007 15:14 Links05 / 12/2007 16:01 PM Music06 / 30/2007 01:20 AM Pictures04 / 07/2007 15:8 PM Jogos salvos 2007-19-02 15:14 PM Searches03 / 01/2007 07:23 PM 242, 947 Test Record.wma06 / 19/2007 10:39 AM Videos06 / 18/2007 09:57 AM 1, 324, 574 wp_screenprint_mc.pdf06 / 18/2007 09:59 73, 996, 533 wp_tshirt_full.mp4 4 Arquivo (s) 75, 564, 054 bytes 14 Dir (s) 132, 927, 537, 152 bytes livresMas, se adicionarmos o> e a ele

C: / Users / Neo / DIR> DIRContents.txtNão obtemos uma saída, mas em vez disso, obtemos um arquivo de texto totalmente novo chamado DIRContents.txt que contém a saída! Coolness! Mas espere, há um problema! Eu quero ter várias saídas no mesmo arquivo, mas meu> apenas continua sobrescrevendo, e não adicionando! O que eu faço?

Etapa 10: >> Parâmetro (2/2)

Parâmetro (2/2) "src =" https://content.instructables.com/ORIG/FG4/B58B/F3JESWIJ/FG4B58BF3JESWIJ-j.webp

Parâmetro (2/2) "src =" https://content.instructables.com/ORIG/F05/GZB1/F3JESWIK/F05GZB1F3JESWIK-j.webp

Parâmetro (2/2) "src =" https://content.instructables.com/ORIG/F93/Q7VS/F3JESWL2/F93Q7VSF3JESWL2-j.webp

Parâmetro (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} ">

Parâmetro (2/2) "src =" {{file.large_url | add: 'auto = webp & frame = 1 & height = 300'%} "> Bem, fico feliz que você perguntou. É para isso que serve o >> Parâmetro! >> é igual ao>, mas em vez de sobrescrever completamente o arquivo especificado, nós adicionamos a ele! Então, vamos tentar.

DIR >> DIRContents.txtArrumado! Funcionou perfeitamente! Então espere. Isso significa que posso escrever o que quiser em um arquivo de texto? eu quero tentar isso

Batch Is Awesome> Awesome.txtO que? Por que não funcionou? É porque o parâmetro só grava a saída de comandos legítimos, não apenas qualquer coisa que você digita. Mas, esse é um problema que é simplesmente resolvido. Lembre-se de que os parâmetros registram a saída dos comandos. Qual comando tem uma saída que podemos controlar? Certo! O Comando ECHO

ECHO Batch Is Awesome> Awesome.txtECHO Estou tão feliz por saber disso. >> Awesome.txtYay! Lembrar. O >> adiciona a saída para a próxima linha do arquivo.

Etapa 11: Exemplo de implementação

OK. Então, vamos juntar tudo! Aqui estão alguns códigos de amostra que fiz que usam os comandos que mostrei neste instrutível. Este código adicionará 1 a uma variável continuamente e produzirá o resultado indefinidamente.

@ECHO OFFSET / a num = 1: Repetir ECHO% num% SET / a num =% num% + 1GOTO RepetirEste código iniciará o CMD.exe 5 vezes

@ECHO OFFSET / a RepeatNum = 5: OpenIF% RepeatNum% == 0 GOTO EndSTART CMD.exeSET / a RepeatNum =% RepeatNum% -1GOTO Open: EndEste código irá criar um arquivo batch em C: / Users / Neo, e irá executá-lo

@ECHO OFFCHDIR C: / Usuários / NeoECHO @ECHO OFF> Hello.batECHO ECHO Olá! >> Hello.batECHO ECHO I & aposm em sua unidade C! >> Hello.batECHO PAUSE >> Hello.batC: / Users / Neo / Hello. batPauseEste é um pequeno lote de jogo. Você deve adivinhar o número

@ECHO OFFSET / a GuessNum = 0SET / a Answer =% RANDOM% ECHO Adivinhe o que o Número I & aposm está pensando.:RetrySET / p Guess = IF% Adivinha% LSS% Resposta% ECHO Meu número é maior. IF% Adivinhe% GTR% Resposta % ECHO My Number is Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO Tentar novamente: ENDECHO Você está correto! A resposta foi% Resposta% ECHO Demorou% GuessNum% Guesses. ECHO. PAUSEE este, eu gosto muito. Se você não tiver cuidado, no entanto, ele pode sair do controle rapidamente, dependendo da capacidade do seu computador. O que esse arquivo faz é criar indefinidamente arquivos de texto numerados em um diretório chamado lolnumbers. Cada um desses arquivos de texto contém o DIR do diretório lolnumbers. O fato é que o diretório está ficando cada vez mais cheio com arquivos de texto, de modo que cada arquivo de texto consecutivo é maior que o anterior. O resultado disso é uma pasta cujo tamanho total fica maior e maior a cada segundo

@ECHO OFFSET / a num = 1MKDIR lolnumbersCD lolnumbers: RestartDIR>% num%.txtSET / a num + = 1GOTO ReiniciarEsses são códigos bem básicos. Experimente com eles o quanto quiser.

Etapa 12: Conclusão: Notas Finais

Ufa. Cobrimos um monte de coisas neste instrutível. Este é, de fato, 3 vezes mais longo que o último. Espero que tenham gostado! Só alguns lembretes antes de eu ir. Lembre-se: ao definir uma variável, nunca coloque um espaço entre a variável e seu valor. SIM:

SET variável1 = valorO espaço extra fará com que sua variável fique em branco. NÃO

SET variável1 = valorAlém disso, os vários IFs. Lembre-se de formatar o parêntese corretamente: SIM

IF 1 == 1 (ECHO, um é igual a um!) ELSE (ECHO, algo está errado com este programa.)NÃO

IF 1 == 1 (ECHO, um é igual a um!) ELSE (ECHO, algo está errado com este programa.)Além disso, existem variáveis integradas também

% CD %% DATE %% TIME %% RANDOM%% CD% Expande para o diretório atual. Basicamente, o caminho atrás do primeiro>% DATE% e% TIME% são a data e a hora.% RANDOM% fornece um número aleatório entre 0 e 32767. O intervalo não pode ser alterado, eu não acho. E é basicamente isso! Espero que tenham gostado deste instrutivo, trabalhei muito nisso. Com sorte, isso vai compensar os 10 meses de ausência. Agora, as más notícias. Eu terei um pouco de dificuldade em responder a quaisquer perguntas nos próximos meses, porque estarei fora do país. Mas se você tiver alguma dúvida, deixe um comentário para qualquer pessoa. Se eu conseguir acesso a um computador, com certeza responderei, mas não acho que isso será necessário; Instructables é uma comunidade amigável, e tenho certeza de que alguém por aí irá ajudá-lo em sua situação. Happy Batching!

Recomendado: