情况说明
Windows系统下,我已经写好了项目代码,能直接跑;打包成exe文件,整理好相关资源文件后,鼠标双击exe文件,也能跑;然后我想把这个exe文件设置开机自启,借鉴了其他博主的文章:如何让Python脚本开机自启且不显示控制台窗口,然后我使用时就出问题了。
经验
首先说明,这位博主的方法本身没问题,但是,一种方法、一段代码不可能解决千万网友的问题。所以我使用后,出现了新问题,就给读者分享新问题的解决经验,如下:
(1)在Windows系统下,使用cd
进入目录,要跨盘就必须加上/d
,例如要从D
盘进入C
盘,演示如下:
C:\Users\Administrator\Desktop>D:\CheckInAuto
'D:\CheckInAuto' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\Administrator\Desktop>cd D:\CheckInAuto
C:\Users\Administrator\Desktop>cd /d D:\CheckInAuto
D:\CheckInAuto>
注意:这个/d
和D
盘无关,从E盘进入F盘也得是它
(2)用命令启动exe文件,如果使用python test.exe
这样的命令报错如下:
说是编码的问题,然后读者尝试网上说的在代码文件开头添加的各种解释编码语句后仍报这个错,你就直接使用命令start test.exe
,原理我不甚清楚,但是我的exe文件确实start
了。
踩坑经历
回到开头的“情况说明”部分,我借鉴了那位博主的方法:为exe文件写一个.bat
文件,然后放到开机自启目录,下次开机时就能自启。
那位博主的.bat
文件内容如下:
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~0"" h",0)(window.close)&&exit
:begin
D:
cd D:\桌面背景自动更换
python 壁纸.py
当然我没傻到“D:\桌面背景自动更换”和“壁纸.py”都照抄,因为我是设想别人电脑也能跑我的exe程序,所以cd
后的目录我使用os.getcwd()
即时获取,python
后面也是我的CheckInAuto.exe
。
然后我在自己电脑上测试的时候就出问题了。.bat
文件中:begin
后面跟的是D:
,不难猜出要是启动肯定是从D
盘开始,然后cd
进入程序目录。所以我故意将CheckInAuto.exe
放在C
盘,模拟它从D
盘进入,结果不行!在网上浏览不少文章······后,终于得出前面提出的第一条经验。
成功进入目录后,使用python CheckInAuto.exe
启动我的exe,就出现了前面提到的编码错误:
尝试了网上常见的几种解释编码方式的语句,如# -*- coding:utf-8 -*-
、# coding = utf-8
、# coding=utf-8
、# coding = gbk
等等,都不行,报一样的错。又是一波网上浏览······后,给我得出了前面提过的第二条经验。感觉就像start
不问编码方式,而是类似于鼠标双击的操作,我鼠标双击不也没管编码,但是照样能跑。
创作不易,如果有所帮助,求点赞收藏!谢谢!