在 Windows 上执行 python 程序,除了打包程 exe 外,还可以使用 cmd 或 pycharm 等手动执行,打开程序。有时候因为某些原因无法打包 exe,但是有觉得 cmd 或 pycharm 执行有些麻烦,希望能够直接点击一个图标即可打开程序。一种可行的解决方案是把运行程序的命令写入到一个 bat 脚本中,通过点击 bat 文件打开 python 程序。

基本介绍

bat 脚本一些基本介绍

  • 注释:
    1
    2
    :: 这后面都是注释
    rem 这后面都是注释
  • 回显:
    1
    2
    echo off 表示除本条命令之外不显示其他所有命令的回显
    @echo off 表示不显示所有命令的回显
  • 命名:bat 命令编写完成后,请把文件扩展名改为 .bat

一些例子

方法一

启动后,后台运行:

1
2
3
4
5
6
7
8
9
10
11
12
@echo off


if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin

C:
cd C:\Users\poac\Documents\download-speedup

:: 假设已经把 python 添加到环境变量,如果没有,那么请指定 python 解释器的完整路径
python download_speed_up.py

保存为:D:\codes\bat\run.bat。鼠标左键双击该 bat 文件可运行,黑框框会自动隐藏

方法二

1
2
3
4
5
6
7
8
9
@echo off

:: 注释
rem 注释

echo start download speed up...

:: && 左右不要有空格
cmd /k "cd /d C:\Users\poac\Documents\download-speedup&&python download_speed_up.py"

保存为:D:\codes\bat\run-bak0.bat。鼠标左键双击该 bat 文件可运行,会出现黑框框

方法三

1
2
3
4
5
6
@echo off

C:
cd C:\Users\poac\Documents\download-speedup

start /b python download_speed_up.py

保存为:D:\codes\bat\run-bak1.bat。鼠标左键双击该 bat 文件可运行,会出现黑框框

开机自启

ctrl + r 输入 shell:startup,并创建 start.vbs(文件名可自定义,扩展名必须是 vbs):

1
2
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "D:\codes\bat\run-bak1.bat /start",0

对于方法二和方法三使用该方法开机自启,不会出现黑框框,且能开机自启成功。但,对于方法一该方法会出错。

参考文献

  1. 使用bat脚本自动打开cmd并执行命令
  2. windows运行bat文件时隐藏命令行(黑框框)