我用Python写了一个任务,希望每天执行,于是就想到写一个批处理脚本让Windows每天执行,下面是踩的一些坑作为记录。

激活Anaconda

由于 Python 任务涉及 Anaconda 的一些python 库,所以需要激活 Anaconda。平时一般用 powershell 执行python,所以默认只有在 powershell 中才会有anaconda环境(详见安装指南),但由于批处理文件用的是“cmd”运行,所以仍然需要激活一次,在脚本中添加

call D:\Anaconda\Scripts\activate.bat base 即可。

写批处理脚本

创建一个 .bat 文件,写大致如下脚本,这样的好处是每天执行的内容是会保存到日志的

1
2
3
4
5
set tdate=%date:~0,4%%date:~5,2%%date:~8,2%
echo "START" >> %tdate%.log
call D:\Anaconda\Scripts\activate.bat base
D:\Anaconda\python.exe "D:\mypath\main.py" >> %tdate%.log 2>&1
echo "SUCCESS" >> %tdate%.log

定期任务

主要参考该篇文章

在开始菜单输入 compmgmt 或者右键开始菜单选择“计算机管理”,对系统工具→任务计划程序→创建基本任务(进入设置向导)或者创建任务。

虽然不是很确定命令起始位置(操作选项是否非常重要,但是出于好习惯,还是建议设置成文件所在目录,比如上述案例中我设置为 D:\mypath

去掉黑框

默认会弹出黑框,需要使用下面方法去掉黑框,即在上述的脚本最前面增加这三行(参考该篇

1
2
3
if "%1"=="hide" goto CmdBegin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:CmdBegin