Я пытаюсь запустить несколько команд в Windows cmd. И между командами нужно спать ~4 секунды.
Я копирую блок команд в cmd и затем хочу, чтобы они запускались один за другим с перерывами в 4 секунды.
Моя проблема в том, что команда тайм-аута останавливает выполнение и не переходит к следующим командам:
python3 my_file.py -a
timeout /t 4 /nobreak > nul
python3 my_file.py -b
timeout /t 4 /nobreak > nul
python3 my_file.py -c
Первая и вторая строки выполняются, а затем заканчиваются и отображается знак >.
(Я сделал то же самое в Linux с командой «сон», и она работает отлично)
Я также пробовал разные варианты команды тайм-аута, такие как timeout /t 4 и timeout 4, но ничего не работает...
Как мне это сделать? он должен работать в Windows cmd, а не как командный файл.
Спасибо
Обновлять:
Как ответил @JosefZ, моя проблема вызвана использованием PASTE. Команда timeout проигнорировала команду PASTE, поэтому следующие команды я не получил.
Использование команды PING в качестве ответа решило проблему.
В использованных вами командах timeout нет очевидных синтаксических проблем, хотя правильнее было бы выглядеть так %SystemRoot%\System32\timeout.exe /T 4 /NoBreak 1>NUL.





timeout /? говорит о параметре /NOBREAK:
/NOBREAKИгнорируйте нажатия клавиш и подождите указанное время.
Игнорировать, т. е. подавлять все содержимое буфера клавиатуры, заполненное методом ВСТАВИТЬ.
Задержку также можно вызвать командой PING с адрес обратной связи (
127.0.0.1), в тестах это потребляет меньше процессора время, чемSleep.exeилиTimeout.exe. Задержка между каждым пингом составляет 1 секунду, поэтому при задержке в 5 секунд пингуется 6 раз.
Следующий фрагмент кода должен работать должным образом:
python3 my_file.py -a
PING -n 5 127.0.0.1 1>nul 2>&1
python3 my_file.py -b
PING -n 5 127.0.0.1 1>nul 2>&1
python3 my_file.py -c
Какой у вас результат
where python3? Я подозреваю, что это файл.batили.cmd— тогда вам нужноcallего.