1

Я запускаю командный файл на сервере для выгрузки базы данных MySQL.

Я бы хотел, чтобы окно cmd открывалось, скажем, 20 секунд, а затем закрывалось. Это так, если я запускаю его вручную, я вижу, что он завершил задачу.

Я пробовал Sleep 20, но не похоже, что он работает. Файл выглядит так:

echo CAMS MySQL database backup

"d:\program files\mysql\mysql server 5.1\bin\mysqldump" -u xxxxxxx -pxxxxxx --result-file="D:\MySQL_Data_Backups\cams\cams.%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%.sql" cams

echo Done!
sleep 20

Когда я запускаю это, оно закрывает окно, не показывая окончательное эхо («Готово!«).

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

Любые предложения относительно того, что я сделал неправильно, пожалуйста?

2 ответа2

2

Использовать этот:

@echo off
echo done
ping 127.0.0.0 -n 1 -w 20000 > nul

-n 1 попытка подключения один раз -w 20000 ждет 20 секунд

@ эхо выключено только для того, чтобы иметь более хороший вывод

Еще один:

timeout 20

Это вы можете остановить даже до того, как начнется обратный отсчет до 0.

1

Для полноты, вот метод старой школы, использующий классическую команду выбора DOS.

ECHO waiting 5 seconds...
CHOICE /C:AB /D A /T 5 > NUL

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .