#python #windows #batch-file #anaconda
#python #Windows #пакетный файл #anaconda
Вопрос:
Мой пакетный файл не распознает и не запускает вторую команду после того, как я изменил командную строку Windows на приглашение anaconda. Он изменяется на среду anconda, но не запускает файл python.
Я пытался использовать amp; и amp;amp;, но это не работает. Я также пытался использовать call перед каждой командой, но это тоже не работает
вот командный файл
%windir%System32cmd.exe "/K" C:Usersrexon.carvalhoAppDataLocalContinuumanaconda3Scriptsactivate.bat C:Usersrexon.carvalhoAppDataLocalContinuumanaconda3
python C:Usersrexon.carvalhoJypyter_scriptspjm_loadcron_test.py
pause
вот результат
как показано в командной строке
C:Usersrexon.carvalhoDesktop>C:WindowsSystem32cmd.exe "/K" C:Usersrexon.carvalhoAppDataLocalContinuumanaconda3Scriptsactivate.bat C:Usersrexon.carvalhoAppDataLocalContinuumanaconda3
(base) C:Usersrexon.carvalhoDesktop>
Комментарии:
1. Вы пробовали открывать
cmd.exe
окно, вводитьcmd /?
и читать информацию об использовании? Если да, то мне было бы интересно узнать, где вы это нашли"/K"
. Я бы предложил вместо этого использовать/K "your command"
. Вы также можете заметить, что при входеset
в то же окно вы можете сократитьC:Usersrexon.carvalhoAppDataLocal
с%LocalAppData%
помощью .2.
/K
поскольку переключение наCMD.EXE
приводит к тому, что подоболочка остается открытой после выполнения команды, переданной в качестве параметра. Вы уверены, что это то, что вы хотите? В большинстве случаев, когда пакетный файл вызывается другим,/C
вместо этого требуется переключатель.3. Ваша
python
команда должна выполняться в том же окне, которое вы открыли в предыдущей строке? или вы должны былиCall "%LocalAppData%Continuumanaconda3Scriptsactivate.bat" "%LocalAppData%Continuumanaconda3"
?4.Вероятно, вам не нужно использовать
Call
дляPython
команды. 1.Call "%LocalAppData%Continuumanaconda3Scriptsactivate.bat" "%LocalAppData%Continuumanaconda3"
, 2.python "%UserProfile%Jypyter_scriptspjm_loadcron_test.py"
, 3 ..Pause
5. Выполняя управление передачей пакетного файла из одного пакета в другой, первый пакетный файл завершается. Вы используете
call
, чтобы сказать, что хотите дождаться возвращения другого пакета. Использованиеcall
с exe-файлом не делает ничего другого, поэтому оно не нужно и нарушает принцип простоты.