AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 38318
Accepted
Srekel
Srekel
Asked: 2009-07-10 06:49:51 +0800 CST2009-07-10 06:49:51 +0800 CST 2009-07-10 06:49:51 +0800 CST

Melhor maneira de esperar alguns segundos em um arquivo bat? [duplicado]

  • 772
Essa pergunta já tem respostas aqui :
Fechado há 9 anos .

Possível duplicado:
como dormir em um arquivo de lote?

Aqui está uma maneira haxxorish de pausar por um segundo em um arquivo de lote:

PING 400.500.600.700 > NUL

Eu pesquisei, mas não tenho certeza se existem melhores .. alguma idéia? :)

windows batch-file
  • 8 8 respostas
  • 136274 Views

8 respostas

  • Voted
  1. Massimo
    2012-09-27T11:08:00+08:002012-09-27T11:08:00+08:00

    A maneira correta de fazer isso é usar o timeoutcomando, introduzido no Windows 2000.

    Para esperar 30 segundos:

    timeout /t 30
    

    O tempo limite seria interrompido se o usuário pressionasse qualquer tecla; no entanto, o comando também aceita o switch opcional /nobreak, que efetivamente ignora qualquer coisa que o usuário possa pressionar, exceto um explícito CTRL-C:

    timeout /t 30 /nobreak
    

    Além disso, se você não quiser que o comando imprima sua contagem regressiva na tela, você pode redirecionar sua saída para NUL:

    timeout /t 30 /nobreak > NUL
    
    • 32
  2. Best Answer
    ThatGraemeGuy
    2009-07-10T07:02:23+08:002009-07-10T07:02:23+08:00

    Você pode usar as opções "escolha padrão" e "tempo limite" do comando de escolha interno para criar um atraso.

    @echo off
    echo Hi, I'm doing some stuff
    echo OK, now I need to take a breather for 5 seconds...
    choice /d y /t 5 > nul
    echo Times up! Here I go again...
    
    • 12
  3. Aaron Lewis
    2012-09-27T10:39:58+08:002012-09-27T10:39:58+08:00
    @echo off
    echo It is time for liftoff.
    timeout /t 5
    echo Commencing crash sequence.
    timeout /t 5
    

    Acertar uma tecla vai superar a contagem regressiva é a única desvantagem.

    • 4
  4. nray
    2009-07-10T07:10:38+08:002009-07-10T07:10:38+08:00

    Aqui está o que eu tenho usado como substituto para sleep.exe ,

    @ping -n 1 -w 1000 0.0.0.1 > NUL  
    

    Mude -n xpara esperar (aproximadamente) xsegundos.

    • 3
  5. James
    2009-07-10T06:58:05+08:002009-07-10T06:58:05+08:00

    Aparentemente , o kit de recursos do Windows tem o comando sleep nele. Outros sites também recomendam o uso de escolha.....

    • 2
  6. KPWINC
    2009-07-10T07:08:57+08:002009-07-10T07:08:57+08:00

    O comando CHOICE com um timer funciona bem...

    ESCOLHA /C:x /T:x,10 > NUL

    Existem também "programas" que você pode executar como WAIT e SLEEP, etc.

    Espero que isto ajude.

    • 1
  7. Mark H
    2009-11-18T00:01:05+08:002009-11-18T00:01:05+08:00

    O ping (acima) é bom, mas só funciona se estiver conectado a uma rede.

    Um pouco de script que vai atrasar está abaixo:


    @echo off

    set /a segundosend=%TIME:~6,2%+10

    se %secondsend% GTR 59 definir /a secondsend=secondsend-60

    :espere aqui

    if %TIME:~6,2% NEQ %secondsend% tem que esperar aqui


    Isso fará uma pausa entre 9 e 10 segundos (o primeiro segundo não é preciso devido ao uso do comando TIME - e pode ser a metade de um segundo antes de você começar).

    Se funciona definindo 'secondsend' para o segundo atual do relógio do PC, adicionando 10 a ele (o atraso). Se for maior que 59, tire 60, pois é enrolado para o próximo minuto. Em seguida, há um loop que verifica o segundo atual com 'secondsend' - uma vez que eles correspondem, o script continua.

    Se você quiser atrasar por um período diferente de 2 a 59, altere o 10 na segunda linha (eu digo 2 a 59, pois o primeiro segundo pode não ser um segundo completo, então 2 poderia ser 1,2 segundos, por exemplo).

    Desculpe, é tão prolixo, mas pensei em explicar como funciona a rotina.

    • 1
  8. Zak Willis
    2011-02-03T08:38:36+08:002011-02-03T08:38:36+08:00

    Acabei de escrever um exe simples em C#. Basta usar o statis System.Threading.Sleep e pegar o argumento da linha de comando e convertê-lo em um inteiro.

    Demorou 5 minutos para fazer.

    • -1

relate perguntas

  • O Vanilla Powershell é um idioma suficiente para administradores do Windows e do servidor de banco de dados?

  • Executando um .exe de um arquivo .asp usando wscipt no Windows Server 2003

  • Melhor backup de ambiente misto (OS X + Windows)? [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Resolver o nome do host do endereço IP

    • 8 respostas
  • Marko Smith

    Como posso classificar a saída du -h por tamanho

    • 30 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    Qual é o utilitário de linha de comando no Windows para fazer uma pesquisa reversa de DNS?

    • 14 respostas
  • Marko Smith

    Como verificar se uma porta está bloqueada em uma máquina Windows?

    • 4 respostas
  • Marko Smith

    Qual porta devo abrir para permitir a área de trabalho remota?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    MikeN No Nginx, como posso reescrever todas as solicitações http para https mantendo o subdomínio? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 Qual é a diferença entre colchetes duplos e simples no bash? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch Como altero a senha da minha chave privada? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt Como funciona a sub-rede IPv4? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve