我正在尝试为我制作一个脚本,以激活虚拟环境,安装要求并启动Python服务器。
我的脚本如下:
git clone https://github.com/ttu/dotnet-fake-json-server.git
cd dotnet-fake-json-server/FakeServer
dotnet run [--file] [--urls]
#like so in my case:
dotnet run --file_data.json --urls http://192.168.1.192:57602
我的问题是该脚本每次仅运行第一部分,而不会转到启动服务器的另一部分。
我犯了什么错误?
我在Windows 7计算机上运行此命令,并在有帮助的情况下使用cmd运行脚本。
答案 0 :(得分:2)
'cmd'命令每次被调用时都会调用一个新命令行。因此,您基本上是通过这两个调用来创建两个单独的命令行实例。
如果从新cmdline内调用bat文件,则不需要cmd / k
@echo off
cd /d C:\Users\evaknid\venv\Scripts & activate & pip install -r reqs.txt
cd /d C:\Users\evaknid\rm_analytics
developer-management-tool
python
manage.py
runserver
/ d实际上是可选的,因为您无需更改驱动器。 是否与命令一起使用取决于您自己。
robvanderwoude.com是不错的资源,如果您在批处理文件命令方面遇到麻烦
答案 1 :(得分:2)
我看不到需要创建新的cmd.exe实例,也不需要在同一行上加入命令:
@PushD "C:\Users\evaknid\venv\Scripts"
@Call "activate.bat"
@PIP install -r reqs.txt
@PushD "..\..\rm_analytics\developer-management-tool"
@python manage.py runserver
@PopD
@PopD
最后两行可能是可选的,(如果您不继续执行那些命令以外的脚本,可以将其删除)。
甚至没有必要跳入和跳出目录,只需使用与此类似的语法Call "C:\Users\evaknid\venv\Scripts\activate.bat"
,就可以在您的环境中同样有效。
答案 2 :(得分:1)
经过一些测试,我找到了解决问题的方法:
@echo off
cmd /k "cd /d C:\Users\evaknid\venv\Scripts & activate & pip install -r reqs.txt & cd /d C:\Users\evaknid\rm_analytics\developer-management-tool & python manage.py runserver"
Dan的评论帮助我了解到我不需要创建两个实例。