[英]bat file in Windows scheduler not running python script
我正在尝试运行 python 脚本来更新 ppt 演示文稿。 一年前,我也尝试过运行回归并更新 SQL 中的表,但都没有运行。 然后我放弃了,因为我无法解决它。
我设法创建了一个 bat 文件来在 windows 调度程序中运行 R 代码,并且可以正常工作。
我已经创建了 bat 文件并在命令提示符下对其进行了测试,py 文件运行并更新了 ppt 演示文稿。
当我在 windows 中运行这个 bat 文件时,调度程序不会更新 ppt。
目前bat文件如下:
@echo off
SET log_file=C:\python\logfile.txt
echo on
call :logit >>log_file=%
exit /b 0
:logit
call C:\ProgramData\Anaconda3\Scripts\activate.bat
cd C:\python\
python Updateppt.py
这些是我到目前为止尝试过的事情:
C:\python>call C:\ProgramData\Anaconda3\Scripts\activate.bat
(base) C:\python>cd C:\python\
(base) C:\python>python Updateppt.py
我能做些什么来让它工作吗? 我真的对此不知所措,我似乎无法找到实际解决我遇到的问题的堆栈溢出响应
更新
我在每个 function 运行之后和最后一个 function 之前添加了时间,日志文件显示当它在 windows 调度程序中运行时,它不会运行最后一个 function,而是循环回到第一个。 它不会在命令提示符下执行此操作
windows 调度程序运行日志 python
INFO:root:run script started at 2022-04-29 13:18:31.318567
INFO:root:loaded enc data at 2022-04-29 13:18:32.072627
INFO:root:create enc_id at 2022-04-29 13:18:32.075627
INFO:root:agg data at 2022-04-29 13:18:59.782707
INFO:root:run script started at 2022-04-29 13:19:22.904437
INFO:root:loaded enc data at 2022-04-29 13:19:23.225462
INFO:root:create enc_id at 2022-04-29 13:19:23.228464
python 的命令提示符日志
INFO:root:run script started at 2022-04-29 13:20:48.871881
INFO:root:loaded enc data at 2022-04-29 13:20:49.051893
INFO:root:create enc_id at 2022-04-29 13:20:49.054894
INFO:root:agg data at 2022-04-29 13:21:05.040096
INFO:root:run script stopped at 2022-04-29 13:21:05.436125
它应该聚合数据,然后导出到 ppt,脚本将停止并运行“run script stopped”行。 为什么它会在命令提示符下正确运行它而不是 windows 调度程序?
这是它没有运行的代码
def update_ppt(CHW_daily):
daily_figures = Presentation(ResultPath+'Template/daily_figures_template.pptx')
# CHW table
slide_CHW = daily_figures.slides[0]
table_CHW = [shape for shape in slide_CHW.shapes if shape.has_table]
#Then we can update the values in each cell directly from the dataframe:
for i in range(1,8):
for j in range(0,6):
table_CHW[0].table.cell(i,j).text = str(CHW_daily.iloc[i-1, j])
table_CHW[0].table.cell(i,j).text_frame.paragraphs[0].font.size = Pt(14)
daily_figures.save(ResultPath+'daily_figures.pptx')
return()
问题是文件无法保存在网络驱动器中。 错误说找不到文件路径。 我使用这段代码解决了这个问题:
from pathlib import Path
ResultPath = Path(r'<network domain name>/Daily figures/')
ResultPath_str = str(ResultPath)
daily_figures = Presentation(ResultPath_str+'/'+Template/daily_figures_template.pptx')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.