Windows 2000 говорит, что тайм-аут не командный или командный файл - PullRequest
3 голосов
/ 03 июля 2019

Я только что возился с CMD и создавал анимированные ascii art. Я пытался использовать команду Timeout на своем ноутбуке с Windows 2000, однако каждый раз, когда я пытаюсь это сделать, он просто говорит, что это не внутренняя или внешняя команда или командный файл.

Это на старом ноутбуке Toshiba 3110CT под управлением Windows 2000; Я получил его в комиссионном магазине в какой-то момент. Я пробовал это на своем ноутбуке с Windows 10, и код там прекрасно работает, но ноутбук 2000 года - это мой кодирующий ноутбук, и мне бы хотелось, чтобы он был там.

@echo off
cd %SystemRoot%\system32\
timeout.exe /t 1 /nobreak >nul

Я ожидаю, что он подождет секунду, а затем отобразит следующий кадр моей анимации ascii. Вместо этого он просто говорит мне, что «timeout.exe» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл. "

1 Ответ

4 голосов
/ 03 июля 2019

Согласно эта статья , timeout была представлена ​​только в домашних версиях Windows, начиная с Vista.Таким образом, использование timeout не будет работать в Windows 2000 (но будет работать в Windows Server 2000 ).

Если вы по-прежнему нуждаетесь вделая пакетное ожидание, вы можете использовать этот хакерский ping вызов , чтобы заставить пакет ждать определенное количество времени в миллисекундах.

Чтобы заставить пакет ждать в течение 1 секунды, выполнитеthis:

ping 127.255.255.255 -n 1 -w 1000 >nul

Объяснение:

  • 127.255.255.255 является локальным адресом обратной связи и используется (по крайней мере в Windows) специально для целей вещания.Любые запросы на этот адрес не будут повторно переданы на клиентский компьютер.
  • -n [number] обозначает количество попыток команды выполнить пинг по этому адресу, в данном случае - 1 раз.
  • -w [number] обозначает промежуток времени в миллисекундах, в течение которого команда должна ожидать ответа до истечения времени ожидания, в данном случае 1000 миллисекунд.
  • >nul перенаправляет вывод с stdout на ноль,Таким образом, фактический вывод команды ping не будет отображаться в командной строке.Если вы хотите быть сверхбезопасным, вы также можете перенаправить вывод из stderr в ноль, добавив 2>nul в конце.
...