Спать в пакетном файле

Используйте тег
, чтобы создать разрыв строки в документе

document.write("
");

Вот пример скрипта

141
задан Community 23 May 2017 в 11:54
поделиться

10 ответов

Если Вам установили Python или не возражаете устанавливать его (он имеет другое использование также:), просто создайте следующий сценарий sleep.py и добавьте его где-нибудь в Вашем ПУТИ:

import time, sys

time.sleep(float(sys.argv[1]))

Это позволит подвторые паузы (например, 1,5 секунды, 0.1, и т.д.), должны Вы иметь такую потребность. Если Вы хотите назвать его как sleep, а не sleep.py, то можно добавить .PY расширение переменной среды PATHEXT. На Windows  XP, можно отредактировать его в:

Мой Компьютер в †’ Свойства (меню) в †’ Усовершенствованный (вкладка) в †’ Переменные среды (кнопка) в †’ Системные переменные (кадр)

ОБНОВЛЕНИЕ: Эти timeout команда, доступная от Windows Vista и вперед, должна быть используемая команда, как описано в другом ответ к этому quiestion.

13
ответ дан tzot 23 May 2017 в 11:54
поделиться

Использование ping хорош, пока Вы просто хотите "ожидать некоторое время". Это, так как Вы зависите от других функций внизу, как Ваша сетевая работа и то, что нет ничего отвечающего на 127.0.0.1.;-), Возможно, не вероятно, что это перестало работать, но это не невозможно...

, Если Вы хотите быть уверенными, что Вы ожидаете точно требуемое время, необходимо использовать sleep функциональность (которые также имеют преимущество, что это не использует мощность ЦП или ожидает сети для становления готовым).

Для нахождения уже сделанного исполняемого файла для сна наиболее удобный способ. Просто бросьте его в свою папку Windows или любую другую часть Вашего стандартного пути, и это всегда доступно.

Иначе, если у Вас есть среда компиляции, можно легко сделать тот сами. Эти Sleep функция доступна в kernel32.dll, таким образом, просто необходимо использовать тот.:-) Для VB / VBA объявляют следующее в начале Вашего источника объявить функцию сна:

private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (byval dwMilliseconds as Long)

Для C#:

[DllImport("kernel32.dll")]
static extern void Sleep(uint dwMilliseconds);

Вы найдете здесь больше об этой функциональности (доступный начиная с Windows 2000) в функция Сна (MSDN).

В стандарте C, sleep() включен в стандартную библиотеку, и в Visual Studio Microsoft C функция назван Sleep(), если не изменяет память, меня.;-), Те два берет аргумент в секундах, не в миллисекундах как два предыдущих объявления.

2
ответ дан Peter Mortensen 23 May 2017 в 11:54
поделиться

Набор Ресурса всегда включал это. По крайней мере, начиная с Windows 2000.

кроме того, пакет Cygwin имеет sleep - булькание, которое в Ваш ПУТЬ и включают cygwin.dll (или независимо от того, что это называют), и способ пойти!

4
ответ дан Peter Mortensen 23 May 2017 в 11:54
поделиться

Я столкнулся с подобной проблемой, но я просто поднял очень короткое консольное приложение на C++, чтобы сделать то же самое. Просто выполненный MySleep.exe 1000 - возможно, легче, чем загрузка/установка целого набора ресурса.

#include <tchar.h>
#include <stdio.h>
#include "Windows.h"

int _tmain(int argc, _TCHAR* argv[])
{
    if (argc == 2)
    {
        _tprintf(_T("Sleeping for %s ms\n"), argv[1]);
        Sleep(_tstoi(argv[1]));
    }
    else
    {
        _tprintf(_T("Wrong number of arguments.\n"));
    }
    return 0;
}
13
ответ дан John Sibly 23 May 2017 в 11:54
поделиться
  • 1
    Это может использоваться на каком-либо типе...? – Chris 20 August 2009 в 10:44

SLEEP.exe включен в большинство Наборов Ресурса, например, Набор Ресурса Windows Server 2003 , который может быть установлен на Windows XP также.

Usage:  sleep      time-to-sleep-in-seconds
        sleep [-m] time-to-sleep-in-milliseconds
        sleep [-c] commited-memory ratio (1%-100%)
15
ответ дан Cristian Ciupitu 23 May 2017 в 11:54
поделиться
  • 1
    Исправьте меня если I' m неправильно, но закрытие нуждается в открытом терме (свободная переменная чтения) по сути, чтобы быть закрытием:) (?) – Schildmeijer 19 November 2009 в 21:05

Я использовал эту программу сна C #. Для вас может быть удобнее, если ваш предпочтительный язык - C #:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace sleep
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                double time = Double.Parse(args[0]);
                Thread.Sleep((int)(time*1000));
            }
            else
            {
                Console.WriteLine("Usage: sleep <seconds>\nExample: sleep 10");
            }
        }
    }
}
3
ответ дан 23 November 2019 в 22:46
поделиться

Еще более легкий, чем решение Python, является Perl однострочный.

Чтобы засыпать на семь секунд, поместите это в сценарий BAT:

perl -e "sleep 7"

Это решение обеспечивает разрешение только в одну секунду.

Если вам нужно более высокое разрешение, используйте Time :: HiRes модуль из CPAN. Он предоставляет usleep () , который спит в микросекунды и nanosleep () , который спит в наносекундах (обе функции принимают только целочисленные аргументы). Увидеть Вопрос о переполнении стека Как мне заснуть на миллисекунду в Perl? для получения дополнительных сведений.

Я использовал ActivePerl много лет. Очень легко установить.

2
ответ дан 23 November 2019 в 22:46
поделиться

Вы можете использовать ping:

ping 127.0.0.1 -n 11 -w 1000 >nul: 2>nul:

Он будет ждать 10 секунд.

Причина, по которой вы должны использовать 11, заключается в том, что первый ping выключается сразу, а не через одну секунду. Число всегда должно быть на единицу больше, чем количество секунд, которое вы хотите подождать.

Имейте в виду, что цель -w - не ждать одну секунду. Это необходимо для того, чтобы вы не ждали больше одной секунды в случае возникновения сетевых проблем. ping сам по себе отправляет один пакет ICMP в секунду. Возможно, это не требуется для localhost, но от старых привычек трудно избавиться.

8
ответ дан 23 November 2019 в 22:46
поделиться

Вы можете использовать слой Windows cscript WSH и этот wait.js файл JavaScript:

if (WScript.Arguments.Count() == 1)
    WScript.Sleep(WScript.Arguments(0)*1000);
else
    WScript.Echo("Usage: cscript wait.js seconds");
9
ответ дан 23 November 2019 в 22:46
поделиться

В случае сбоя сервера был задан аналогичный вопрос , и решение было таким:

choice /d y /t 5 > nul
10
ответ дан 23 November 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: