如何在 windows 下编写 bat 脚本,使我能够直接双击打开它就激活 venv 环境并执行 Python 脚本。

2018-05-23 20:43:11 +08:00
 LemonFirst
windows 的 bat 脚本一窍不通。
4953 次点击
所在节点    Python
20 条回复
cdwyd
2018-05-23 20:50:09 +08:00
打包成单文件 exe
gjquoiai
2018-05-23 20:53:33 +08:00
我写的辣鸡 powershell:
if (Test-Path ".\venv\Scripts\activate") {
.\venv\Scripts\activate.ps1
}
_(:з)∠)_
1024MB
2018-05-23 20:56:25 +08:00
这算伸手贴吗?麻烦楼下告知
wenzhoou
2018-05-23 21:44:41 +08:00
不晓得。标题太长不看
LemonFirst
2018-05-23 21:53:00 +08:00
@1024MB 实在是连搜索都不知道怎么搜索
LemonFirst
2018-05-23 21:58:49 +08:00
@gjquoiai 直接这样就可以吗? 我本来想测试一下写了
...\venv\Scripts\activate.bat
pip list
pause
然后直接双击
结果 pause 都没有成功窗口就关掉了。
虽然知道可以再 cmd 里面执行,不过没有这样操作就放弃了
LemonFirst
2018-05-23 22:00:40 +08:00
@cdwyd 没想到这个方案,来试一下。
UnknownR
2018-05-23 22:04:02 +08:00
可以写 powershell 脚本.ps1 ,能导入模块,基于.net ,接口丰富
shijingshijing
2018-05-23 22:05:05 +08:00
把 python 脚本拖到 开始菜单->程序->启动

试试看

不行的话,打开记事本,python c:\user\xxxxxx (你放 python 脚本的路径)xxxxx\myPyScript.py ,另存为 xxx.bat ,然后拖到启动里面去。
LemonFirst
2018-05-23 22:12:26 +08:00
@shijingshijing 这是什么操作?这不是开机启动吗?看来我的描述很有问题啊没把问题说清楚。
LemonFirst
2018-05-23 22:14:09 +08:00
@UnknownR 谢谢,看看能不能找到相关的信息测试一下,至少在 powershell 下执行 activite 不会直接给我开一个新窗口,可能比较容易点。
LemonFirst
2018-05-23 22:23:31 +08:00
用 powershell 一下子就搞定了。。。可以了溜了溜了。
arthasgxy
2018-05-23 23:28:38 +08:00
是要,给那种对编程一窍不通的同事,一个一键运行 python 的方案么?
bear330
2018-05-23 23:43:25 +08:00
@ LemonFirst

問題出在你的第一行
...\venv\Scripts\activate.bat
這是另一個 bat 檔, 所以要加上 call
call ...\venv\Scripts\activate.bat
這樣應該就解決了
alvin666
2018-05-24 00:03:46 +08:00
我直接就是 pythonw /aaa.py ,双击运行,还可以加 input,也写过用 vbs 调用,好处是没有任何图形界面,不像 cmd 还要闪一下
geelaw
2018-05-24 00:09:13 +08:00
我一般是写一个 PowerShell 脚本,然后写一个 batch 启动 PowerShell 脚本(这样可以保持 AllSigned 的执行策略)
geelaw
2018-05-24 00:17:26 +08:00
@LemonFirst #6 你需要 CALL 内部命令,比如

CALL path/to/another/batch.bat

否则控制权永远不会返回当前 batch
LemonFirst
2018-05-24 15:52:45 +08:00
@arthasgxy # 13 不是。自己想偷懒而已。。。
LemonFirst
2018-05-24 15:59:12 +08:00
@bear330 #14 虽然用 powershell 解决了,但是还是感谢解答。 这样可以以此去了解 bat 的流程,增长见识,不然本来都不知道从何下手。感谢
LemonFirst
2018-05-24 16:00:07 +08:00
@geelaw #17 感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/457265

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX