Как изменить bat-файл таким образом, чтобы среда и экземпляр консоли оставались открытыми после завершения сценариев? - PullRequest
0 голосов
/ 08 апреля 2020

Я написал хороший файл .bat, который запускает скрипт python:

cd C:\ProgramData\Anaconda64\condabin 
call conda activate
call conda activate py37_32
SET PyPathName=C:\ProgramData\Anaconda64\envs\py37_32\python.exe
SET ScriptName=C:\Users\%USERNAME%\path_to_my_script\my_script.py
%PyPathName% %ScriptName%

Когда я нажимаю на файл .bat, я получаю ожидаемый результат в открывшемся окне терминала:

C:\Users\my_username\path_to_batfile>cd C:\ProgramData\Anaconda64\condabin

C:\ProgramData\Anaconda64\condabin>call conda activate

(base) C:\ProgramData\Anaconda64\condabin>call conda activate py37_32

(py37_32) C:\ProgramData\Anaconda64\condabin>SET PyPathName=C:\ProgramData\Anaconda64\envs\py37_32\python.exe

(py37_32) C:\ProgramData\Anaconda64\condabin>SET ScriptName=C:\Users\my_username\path_to_my_script\my_script.py

(py37_32) C:\ProgramData\Anaconda64\condabin>C:\ProgramData\Anaconda64\envs\py37_32\python.exe C:\Users\my_username\path_to_my_script\my_script.py

Все отлично, скрипт работает хорошо и все. За исключением того, что я хотел бы взаимодействовать с результатами, полученными из скрипта, используя python. Пример: в сценарии my_script.py я получаю данные из веб-сокета и сохраняю их во временном ряду pandas. Чтобы привести конкретный пример, я хотел бы в любой момент напечатать:

my_series.plot()

Это особый случай того, что я хотел бы сделать. Но на самом деле мой вопрос довольно общий: можно ли как-нибудь набрать python код в окне терминала, которое открывается при запуске файла bat, чтобы я мог использовать результаты скрипта?

Я могу предоставить дополнительные подробности о самом сценарии.

РЕДАКТИРОВАТЬ : Кажется, что существует некоторая путаница в том, как я сформулировал вопрос, поэтому здесь более конкретное c решение взято из одного комментариев.

Как изменить файл bat таким образом, чтобы среда и экземпляр консоли оставались открытыми после завершения сценариев?

1 Ответ

2 голосов
/ 08 апреля 2020

Добавить простую строку:

cmd /k

Это откроет новый экземпляр cmd (с использованием того же окна), который наследует только что установленную среду и не закроется из-за /k. Подробнее см. cmd /?.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...