Для тестирования и личного подтверждения концепции у меня есть файл .exe, который выводит только простую строку и затем вызывает системную паузу (буквально system("pause")
в C ++).
У меня естьпростой скрипт на Python, который я тестирую на виртуальной машине Windows XP, которая выполняет следующие операции при сбое:
subprocess.call(r'echo Nothing special. > c:\blank.txt', shell=True)
subprocess.call(r'type pause.exe > c:\blank.txt:ads.exe', shell=True)
subprocess.call(r'start c:\blank.txt:ads.exe', shell=True)
subprocess.call(r'del c:\blank.txt', shell=True)
Очевидно, что все эти команды отлично работают в одиночку в командной строке, почему они не работают нормально, когдавызывается через Python?
Я получаю это всплывающее сообщение об ошибке:
blank.txt: ads.exe столкнулся с проблемой и должен быть закрыт.Приносим извинения за неудобства.
Если вы были в центре чего-то, информация, с которой вы работали, может быть потеряна.
Файл действительно также удален.Кажется, что системная пауза просто прерывается командой delete, когда я ожидаю, что всплывающий файл .exe подождет, пока я нажму enter, а затем скрипт продолжит работу и удалит файл.