Python 启动cmd并在创建的cmd实例中运行多个命令
我正在尝试启动cmd窗口,然后在该cmd窗口中依次运行一系列cmd。 类似于Python 启动cmd并在创建的cmd实例中运行多个命令,python,batch-file,cmd,Python,Batch File,Cmd,我正在尝试启动cmd窗口,然后在该cmd窗口中依次运行一系列cmd。 类似于start cmd/k pipenv shell&&py manage.py runserver的东西start cmd应该打开一个新的cmd窗口,这实际上发生了,然后pipenv shell应该在该cmd实例中启动一个虚拟环境,也会发生,而py manage.py runserver应该在创建的环境中运行,但它在调用脚本的地方运行 关于如何实现这一点有什么想法吗?您的py manage.py runserver命令在您
start cmd/k pipenv shell&&py manage.py runserver的东西
start cmd应该打开一个新的cmd窗口,这实际上发生了,然后pipenv shell应该在该cmd实例中启动一个虚拟环境,也会发生,而py manage.py runserver
应该在创建的环境中运行,但它在调用脚本的地方运行
关于如何实现这一点有什么想法吗?您的
py manage.py runserver
命令在您的主要环境中调用python executor。在您的情况下,可以使用pipenv run manage.py runserver
来检测PIP文件中的虚拟环境,并激活它以运行命令。另一种方法是使用直接在项目目录中创建虚拟环境的virtualenv
,并在每次要在虚拟环境中运行某些内容时调用envname\Scripts\activate
。在发出链接命令时,系统将其视为第一个命令和第二个命令
在您的案例中,您发出的第一个命令是start cmd
,第二个命令是py manage.py
,这将恰好做到这一点,您在一个新窗口中发出cmd,如果成功,它将在您启动的同一窗口中启动py
。因此,应使用插入符号转义&
,以便将链传递到第二个命令窗口,而不是在当前窗口中启动链:
start cmd /k pipenv shell ^&^& py manage.py runserver
请记住,您也可以将这两个命令添加到批处理文件中,如下所示:
pipenv shell
py manage.py runserver
并以以下方式发布:
start "" mybatch.cmd
一个简单的插入符号解决了这个问题,但是使用批处理文件更容易插入符号似乎没有改变任何东西我错过了第一个,它应该是
cmd/k pipenv shell^&^&py manage.py runserverstart cmd/k pipenv shell^&^&py manage.py runserver
删除了运行两个连续命令的需要,也就是说,我投票支持你,尽管它不能解决我希望在打开的cmd中运行连续脚本的问题,除虚拟环境外,我还有其他要连续运行的cmds命令