Comando Start-Sleep do PowerShell: Sintaxe, Exemplos
Precisa atrasar um script do PowerShell por um tempo? Em seguida, você precisa do comando PowerShell Start-Sleep.
Este guia ensina tudo o que você precisa saber sobre a suspensão do PowerShell. Começo o guia explicando a sintaxe do comando Start-Sleep.
Então, na seção final do guia, compartilho 9 exemplos da vida real de como usar o comando Start-Sleep.
Procurar tópicos de postagem
- Powershell Sleep: Sintaxe do cmdlet Start-Sleep
- Exemplos de suspensão do Powershell
- Como definir a suspensão do PowerShell em milissegundos, 1 segundo (ou menos), minutos ou por 1 hora
- Como usar o Powershell Sleep para contagem regressiva (função de contagem inicial)
- Como usar o Powershell Sleep com tempo aleatório
- Como executar o Powershell Sleep até certo momento
- Como adicionar a suspensão do PowerShell após ou antes de um comando
- Como usar a suspensão do PowerShell para repetir um script
- Como colocar um script do PowerShell para dormir até que o arquivo exista
- Como fazer com que o PowerShell durma para sempre até eu pressionar Ctrl + C
- Como o PowerShell dormir até que o processo em execução seja concluído
Powershell Sleep: Sintaxe do cmdlet Start-Sleep
Aqui está a sintaxe do cmdlet Start-Sleep:
|_+_| |_+_|
Este cmdlet tem dois parâmetros
Milissegundos – use-o para especificar o tempo (Int32) em milissegundos. O PowerShell atrasará os milissegundos que você inserir.
Por exemplo, se eu quiser atrasar meu script por 300.000 milissegundos (5 minutos), executarei o comando abaixo:
|_+_|
Segundos : Você também pode especificar o período de atraso em segundos. Para fazer isso, use o Segundos parâmetro do comando Start-Sleep.
Para continuar com o último exemplo, para atrasar meu script por 5 minutos (300 segundos), executarei o comando abaixo:
|_+_|Exemplos de suspensão do Powershell
Esta seção tem alguns exemplos de como usar o Powershell Sleep para resolver algumas tarefas complexas, como contagem regressiva e muito mais.
Como definir a suspensão do PowerShell em milissegundos, 1 segundo (ou menos), minutos ou por 1 hora
Como expliquei na última seção, o comando Start-Sleep possui duas sintaxes, conforme mostrado abaixo:
|_+_|Para definir o PowerShell para atrasar por 30.000 milissegundos (30 segundos), use qualquer um dos comandos abaixo:
|_+_|Além disso, você pode usar o parâmetro de milissegundos para definir o sono para menos de 1 segundo. Por exemplo, se você quiser atrasar um script do PowerShell por 0,0005 segundos (0,5 milissegundos), poderá usar qualquer um dos comandos abaixo:
|_+_|No meu terceiro exemplo nesta subseção, quero definir a suspensão do PowerShell por 1 hora. A melhor abordagem aqui é usar o parâmetro Seconds do comando Start-Sleep.
qual servidor dns estou usando mac
Para fazer isso, porém, você precisa converter 1 hora para segundos. Você pode fazer isso facilmente pesquisando converter 1 hora para segundos no google.
O resultado é 3600 segundos. Portanto, para atrasar um script do PowerShell em 1 hora, use o comando PowerShell Start-Sleep abaixo:
|_+_|Como você pode ver na captura de tela abaixo, o prompt de comando do PowerShell não estará disponível até que o atraso (1 hora) termine.
Da mesma forma, você pode definir o PowerShell para dormir por 5 minutos usando o comando abaixo:
discordar como limpar um bate-papo|_+_| 5 minutos equivalem a 300 segundos
Como usar o Powershell Sleep para contagem regressiva (função de contagem inicial)
Eu escrevi uma função do PowerShell (Start-Count), que faz uma contagem regressiva ou crescente. A função tem 4 parâmetros:
Contagem regressiva : Quando você especifica este parâmetro, Start-Count faz a contagem regressiva de um número especificado
CountUp: Alternativamente, especificando o Contagem Crescente parâmetro faz a contagem de partidas contar para cima a partir de um número especificado
Contagem de : Ao contrário do Contagem regressiva e Contagem Crescente , este parâmetro requer uma entrada. Use isto para especificar o número para contagem regressiva ou ascendente.
Contar até : Use este parâmetro para especificar o número para contar (para baixo ou para cima)
Siga as etapas abaixo para baixar e usar a função Start-Count:
- Clique para baixar Start-Count.zip
- Em seguida, descompacte Start-Count.zip. Quando descompactado, você verá uma pasta chamada Start-Count. Esta pasta contém o módulo PowerShell
- Copie a pasta Start-Count para a pasta Módulos do PowerShell. Ele está localizado em C:Usersprofile_nameDocumentsWindowsPowerShellModules
- Desbloqueie o arquivo do módulo baixado com o comando abaixo:
- Por fim, abra o PowerShell e execute Start-Count. No primeiro exemplo, quero fazer uma contagem regressiva de 10 a 0.
O comando iniciará a contagem regressiva de 10 até chegar a zero (0). Veja a imagem abaixo…
Neste segundo comando, estou contando de 5 a 40…
|_+_|
Como usar o Powershell Sleep com tempo aleatório
Quando você executa o Start-Sleep, o PowerShell faz a contagem regressiva a partir do início do tempo especificado. Por exemplo, se eu executar Start-Sleep e especificar 20 segundos, o PowerShell fará uma contagem regressiva de 1 segundo.
No entanto, se você quiser que a contagem regressiva seja aleatória (ou seja, contagem regressiva de 2, 5, 6), você precisará combinar Start-Sleep e Get-Random.
Por exemplo, se eu quiser que o PowerShell durma em intervalos entre 1 e 10 segundos, executarei o comando abaixo:
|_+_|Coloque este comando antes de executar os comandos que deseja executar com atraso aleatório…
Como executar o Powershell Sleep até certo momento
Em alguns cenários de script do PowerShell, talvez você queira definir a suspensão até um determinado horário. Por exemplo, você pode querer definir o modo de suspensão por 30 segundos.
Para conseguir isso, você precisa de um Fazer , Até ciclo.
Neste exemplo, quero que o PowerShell durma até que o cronômetro atinja 30 segundos.
Primeiro, defino a hora de início e a hora de término. A hora de início é a hora a partir da qual quero contar.
Para facilitar, vou contar a partir de 0.
Primeiro de tudo, vou definir de onde quero contar….
|_+_|Então, eu vou definir onde eu quero contar…
|_+_|Agora vou usar Fazer , Até loop com Start-Sleep conforme mostrado no script abaixo:
Execute cada comando um de cada vez |_+_| Coloquei todo o script Do, Until em uma única linha para poder executá-lo no PowerShell. Se você deseja executar o script emPowerShell ISE, você pode escrevê-lo como mostrado abaixo: |_+_|No entanto, para executar o script no PowerShell, execute cada um dos comandos abaixo:
|_+_|O comando contará de 0 a 30, com intervalo de 1 segundo. Veja a imagem abaixo…
Como adicionar a suspensão do PowerShell após ou antes de um comando
Este é um exemplo muito simples. Se você quiser adicionar um atraso após um comando do PowerShell, adicione o comando Start-Sleep após o comando do PowerShell.
Por exemplo, para adicionar 5 minutos de espera após executar Get-Process, use o comando abaixo:
|_+_|Conforme mostrado na captura de tela abaixo, quando o comando Get-Process é concluído, o PowerShell não retorna ao prompt. Isso indica que o atraso de 5 minutos (300 segundos) está em vigor.
No lado oposto do exemplo acima, você também pode usar a suspensão do PowerShell para adicionar um atraso e executar um comando.
Desta vez, em vez de adicionar Start-Sleep após o comando, adicionamos antes do comando…
como nivelar a conta do Steam rapidamente|_+_|
Desta vez, o atraso será ativado antes que o comando seja executado.
Como usar a suspensão do PowerShell para repetir um script
Ao tentar encontrar uma solução para isso, encontrei um script existente enviado por um stackoverflow.com colaborador (Ansgar Wiechers).
Ansgar criou a função abaixo. Ele o chamou de Comando de Repetição. Mudei a função para Redo-Command para usar um verbo aprovado pelo PowerShell.
Fora isso, dou todo o crédito a Ansgar Wiechers. Aqui está o roteiro completo…
|_+_|Bem, também enviei o script para nossos leitores baixarem e usarem. Para baixar e usar a função, siga os passos abaixo:
- Clique em baixar Redo-Command.zip . Em seguida, descompacte o arquivo zip baixado.
- Copie a pasta descompactada, Redo-Command para c:usersDocumentsWindowsPowerShellModules
- Em seguida, abra o PowerShell e execute o comando abaixo – o comando desbloqueia o arquivo. Isso interrompe o PowerShell constantemente avisando que o arquivo foi baixado da Internet
- Por fim, para usar a função Sleep do PowerShell para repetir um script, execute um comando como o abaixo:
A repetição padrão é 5 vezes. No entanto, se você quiser adicionar uma nova tentativa personalizada, use o parâmetro Maximum conforme mostrado abaixo…
|_+_|No último comando, você tenta novamente 8 vezes antes que um erro seja retornado.
Como colocar um script do PowerShell para dormir até que o arquivo exista
Para colocar um script do PowerShell em suspensão até que um arquivo exista, você precisa usar Test-Path e Start-Sleep em um loop While.
como você gira o texto no ms paint
Aqui está a sintaxe geral do loop PowerShell While que você precisa:
|_+_|Para dar um exemplo, vou verificar se existe um arquivo chamado eventlog.txt na unidade D. O script não prosseguirá até que o arquivo esteja disponível.
Aqui está o roteiro…
|_+_|O comando Test-Path verifica se existe um arquivo. Se o arquivo existir, Test-Path retornará True.
Ao contrário, se o arquivo não existir, Test-Path retornará False. Adicionando ! antes do Test-Path, reverti o resultado.
Portanto, o resultado no loop while será True se o arquivo não existir.
Essência, o que o comando diz é o seguinte: if Test-Path d:eventlog.txt é igual Falso (O arquivo NÃO existe), retorne Verdadeiro para o laço while. Além disso, na medida em que a condição while é Verdadeiro , execute o comando Start-Sleep 10 (atraso de 10 segundos).
Em seguida, retorne à parte de condição do loop while e verifique se o arquivo existe. Caso contrário, atrase por mais 10 segundos. Esse loop continuará até que o arquivo exista – então, o loop será interrompido e o PowerShell será retomado.
Para testar este script, vou executá-lo primeiro (sem o arquivo, d:eventlog.txt)
Como visto na captura de tela abaixo, o loop while continuará porque o arquivo não existe.
Para quebrar o loop, vou criar o arquivo. Depois de criar o arquivo, o loop while será interrompido e o PowerShell continuará (veja a captura de tela abaixo):
Como fazer com que o PowerShell durma para sempre até eu pressionar Ctrl + C
Se você estiver executando um comando que não deseja interromper até pressionar Ctrl + C, precisará do loop while.
Por exemplo, para executar o comando do PowerShell – Get-EventLog -LogName Application – para sempre (continuamente, até você pressionar Ctrl + C), use o comando abaixo:
|_+_|O que o comando faz é o seguinte: enquanto o comando na parte {} do loop while for verdadeiro, continue executando.
Como o PowerShell dormir até que o processo em execução seja concluído
Este exemplo é o oposto direto do último exemplo. No último exemplo, mantive um processo em execução contínua.
No entanto, neste exemplo, quero que o PowerShell durma até que o processo seja concluído. Uma vez que o processo termina, o sono termina.
Como no exemplo anterior, um loop while fará o trabalho. No entanto, a forma como o loop while é configurado é diferente.
Desta vez, coloquei o comando no bloco () do loop while. No entanto, eu preciso adicionar! antes do comando.
Aqui está o meu exemplo…
|_+_|Este comando diz ao PowerShell, enquanto (Get-EventLog -LogName Application) for true, faça o PowerShell dormir por 5 segundos. Após a suspensão, o PowerShell verificará se o comando (Get-EventLog -LogName Application) ainda está em execução.
Se ainda estiver em execução, inicie a suspensão por mais 5 segundos. Este loop continuará até que o comando seja concluído…
Espero que você tenha achado este guia fácil de entender e útil! Se você achou o guia útil, vote Sim para Esta postagem foi útil? abaixo.
Você também pode fornecer feedback detalhado usando o DEIXE UMA RESPOSTA no final desta página.
truque para baixar vídeos do youtube sem qualquer software
Por fim, você pode achar úteis nossos outros guias do PowerShell. Para ler guias mais perspicazes do PowerShell, visite nossa página PowerShell & CMD Explained.
Mais uma coisa antes de você ir, se você quiser aprender PowerShell, você pode querer marcar nossa página de Tutoriais do PowerShell.


