2

Наше приложение использует 3 базы данных: одну с данными клиента и две с данными конфигурации. Чтобы предотвратить уничтожение данных клиента, в пакетном файле, удаляющем базу данных клиента, сначала появляется предупреждающее сообщение, а затем пауза.

Я просто случайно вызвал клиентскую базу данных на моей машине (без потерь, это была просто копия), и когда пришло приглашение на паузу, я просто нажал Ctrl+C. Вместо прямого завершения Windows спросила меня, хочу ли я завершить пакетное задание.

Поэтому я просто снова нажал Ctrl+C, потому что, IMO, Ctrl+C означает НЕ продолжать, и потому что у меня все равно были пальцы на этих клавишах. Пакетный файл все равно продолжал и удалял базу данных (это означает, что мне нужно восстановить ее, что делает мой компьютер непригодным для использования в течение двух часов).

Почему Windows CMD.EXE считает, что когда я нажимаю CTRL+C в запросе на пакетное задание Terminate, это означает, что я действительно хочу продолжить (другими словами, почему Ctrl+C в этом контексте означает Y, а не N)?

В Linux оболочка фактически выполняет то, что вы просите, то есть завершать сценарий, не задавая бессмысленного вопроса. Никто никогда не нажимает Ctrl+C в окне DOS случайно (если они не думали, что они были в текстовом редакторе, а не в окне DOS).

0