Командная строка Windows CMD Закрыть

#python #windows #cmd

#питон #Windows #cmd

Вопрос:

cmd

Как я могу в Python проверить и закрыть такие окна cmd, как на картинке? Этот код должен контролировать и определять, какой cmd завершен и простаивает, как на картинке, затем закройте его. Мне не нужен код, который ждет, чтобы закрыть его. Это должна быть отдельная программа. Кстати, изображение является образцом. Это не моя изначальная проблема.

Вы можете подумать, что у вас открыто окно или несколько окон, ожидающих вот так, как их можно закрыть? Существует условие для закрытия командной строки. Это условие заключается в том, что программа в этом приглашении должна быть выполнена. Командные строки, в которых выполняется программа, не должны быть закрыты. Более того, эта программа должна вмешиваться извне и впоследствии.

Я не могу решить проблему с помощью taskkill или psutil. Они всегда видят состояние cmd как запущенное. Более конкретно, вы можете посмотреть фрагмент кода ниже,

 os.system("start /B start cmd.exe @cmd /k python helloworld.py amp; exit")
 

Он не закрывает командную строку.

Комментарии:

1. перетащите файл python в командную строку, после чего он покажет ваши выходные данные. после этого введите exit или exit() , чтобы закрыть cmd

2. Почему вы используете оба start и cmd дважды?? cmd /C python helloworld.py (или start "" /B cmd /C python helloworld.py ) должно быть достаточно…

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

4. Простое решение вообще не используется os.system() , поскольку используемый код приводит к выполнению %ComSpec% /c start /B start cmd.exe @cmd /k python helloworld.py amp; exit , что означает запуск cmd.exe , чтобы использовать его внутреннюю команду start для запуска еще одного командного процесса, чтобы использовать внутреннюю команду start для запуска еще одного командного процесса для запуска python.exe для обработки скрипта Python. amp; exit в конце этой командной строки интерпретируется командой first cmd.exe started by os.system as для выполнения после first start . Весь подход не имеет смысла.

5. Второй процесс cmd запускается с помощью командной строки C:WindowsSystem32cmd.exe /K start cmd.exe @cmd /k python helloworld.py , которая продолжает выполняться до тех пор, пока пользователь не введет exit опцию /K . Третий командный процесс запускается с помощью командной строки cmd.exe @cmd /k python helloworld.py , что приводит к запуску python.exe с helloworld.py аргументом as и продолжает выполняться после python.exe завершения самого себя из-за опции /k . Таким образом, пользователь должен ввести exit , чтобы закрыть третье cmd.exe , в то время как первое cmd.exe закрылось само по себе уже после запуска второго cmd.exe , потому что…

Ответ №1:

Я не знаю, ищете ли вы это решение, но вы можете добавить «amp; exit» после вашего скрипта, и это закроет CMD.

Например:

 python script.py amp; exit