У меня есть BAT-программа, которая многократно вызывает EXE (MKS sed.exe) с выводом, перенаправленным в TXT-файл. Иногда прекращение выполнения, если эта программа по нажатию кнопки X в окне оставляет запущенный процесс EXE и файл TXT открытым для записи, что затрудняет дальнейший доступ к файлу TXT.
Текущий обходной путь: после нажатия X используйте диспетчер задач, чтобы вручную завершить работу EXE.
Есть ли средство, не требующее замены EXE?
Я не видел этой проблемы из того же файла на WinXP.
Возможно, вам больше повезет, если вы получите ответы на этот вопрос на SuperUser.com вместо StackOverflow.
—
dbenham
«Иногда прекращение выполнения, если эта программа по нажатию кнопки« X »в окне оставляет процесс EXE запущенным» - просто для подтверждения, «эта программа» означает, что вы закрываете окно командной строки и завершаете пакетный файл с помощью кнопки закрытия, и это оставляет sed.exe запущенным, правильно? Что ж, это совершенно нормальное поведение, и я не понимаю, как это не будет работать точно так же и в XP. Чтобы обнаружить принудительное закрытие окна командной строки / командной строки cmd и выполнить очистку, т. Е. Убить другие процессы, запущенные сценарием, вам потребуется еще один процесс монитора, возможно, сценарий AutoHotkey.
—
Каран
«Возможно, будет более надежным завершить процесс с помощью CTRL-C» Я думаю, что это так.
—
ChrisJJ
«Просто для подтверждения, под« этой программой »вы подразумеваете, что закрываете окно командной строки и завершаете пакетный файл с помощью кнопки закрытия, и это оставляет sed.exe запущенным, верно?» Правильно «Ну, это совершенно нормальное поведение, и я не понимаю, как это не будет работать точно так же и в XP». Интересно - спасибо. Я не видел этой проблемы на XP, но, возможно, это только удача.
—
ChrisJJ
%ERRORLEVEL%
чтобы он выходил из цикла приsed.exe
неправильном выходе. Вероятно, это поможет включить содержимое вашего командного файла в вопрос.