影刀RPA 内置系统变量大全:日期时间路径状态变量的用法

📅 2026/7/12 5:21:03
影刀RPA 内置系统变量大全:日期时间路径状态变量的用法
影刀RPA 内置系统变量大全日期时间路径状态变量的用法作者林焱什么情况用这个很多新手写流程时需要当前日期就手动获取、需要文件路径就硬编码、需要知道流程跑了多久就自己计时。其实影刀已经内置了大量系统变量直接拿来用就行——不仅省代码还能避免自己实现时出Bug。影刀的内置变量分几大类日期时间、文件路径、运行状态、系统信息。熟记这些变量至少能让你的流程代码减少30%稳定性提升一个档次。这篇文章把这些变量一次性全列清楚每个变量在什么场景下用有什么坑。怎么做第一步日期时间类变量——最常用影刀提供了一套完整的时间变量比你自己用Python处理方便得多系统变量示例值说明{当前日期}2025-03-15YYYY-MM-DD格式{当前时间}14:30:25HH:MM:SS格式{当前日期时间}2025-03-15 14:30:25完整时间戳{当前年份}2025四位数年份{当前月份}03两位数月份{当前日}15两位数日期{当前小时}1424小时制{当前分钟}30分钟{当前秒}25秒{当前星期}3周几1周一{当前时间戳}1710464425Unix时间戳{当前时间戳毫秒}1710464425123毫秒时间戳实战用法# 在影刀指令中直接引用 【打印日志】→ 备份开始时间{当前日期时间} 【重命名文件】→ D:/备份/数据_{当前日期}.xlsx 【创建文件夹】→ D:/报表/{当前年份}/{当前月份}/ # 在Python节点中使用 from datetime import datetime ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e9a7172bed6c42b7b2ba410dfed25d67.png#pic_center) # 影刀变量在Python中的等价写法 current_date datetime.now().strftime(%Y-%m-%d) current_time datetime.now().strftime(%H:%M:%S) current_datetime datetime.now().strftime(%Y-%m-%d %H:%M:%S) current_year datetime.now().year current_month f{datetime.now().month:02d}第二步文件路径类变量——告别硬编码系统变量示例值说明{影刀安装目录}C:\Program Files\yingdao影刀程序目录{用户桌面目录}C:\Users\用户名\Desktop用户桌面{用户文档目录}C:\Users\用户名\Documents用户文档拼多多店群自动化上架方案|{用户下载目录}|C:\Users\用户名\Downloads| 下载文件夹 ||{流程目录}|C:\Users\用户名\Documents\yingdao\flows| 流程文件目录 ||{临时目录}|C:\Users\用户名\AppData\Local\Temp| 系统临时目录 |不要硬编码路径❌ 【读取Excel】→ C:\Users\张三\Desktop\数据.xlsx → 换个人不是张三就跑不了 ✅ 【读取Excel】→ {用户桌面目录}\数据.xlsx → 任何人的电脑都能跑第三步运行状态类变量——监控流程状态系统变量说明使用场景{流程名称}当前运行的流程名日志记录、通知消息{流程启动时间}流程开始执行的时间计算运行时长{当前执行次数}流程已执行次数循环中的进度追踪{上一次错误信息}最近一次错误的描述错误通知{当前元素索引}ForEach中的当前索引定位处理到第几个实战用法# 在流程出错时发送通知 【发送企业微信消息】 内容流程【{流程名称}】执行出错 启动时间{流程启动时间} 错误信息{上一次错误信息} # 在ForEach中追踪进度 【打印日志】→ 正在处理第{当前元素索引}个商品第四步系统信息类变量系统变量说明{计算机名}当前计算机名称{用户名}当前登录用户名{操作系统版本}Windows版本{影刀版本}影刀程序版本号这些变量的价值当你把流程部署到多台机器上出问题时能知道是哪台机器出的问题【发送邮件】 主题流程异常 - {计算机名} 内容机器{计算机名}{用户名} 系统{操作系统版本} 影刀版本{影刀版本} 时间{当前日期时间}第五步在Python节点中使用系统变量系统变量通过影刀变量面板传入Python节点# 假设你在影刀变量面板中设置了这些变量# 然后在Python节点中读取# 获取当前日期并生成各种格式fromdatetimeimportdatetime,timedelta nowdatetime.now()# 常用的日期派生yesterday(now-timedelta(days1)).strftime(%Y-%m-%d)monday_this_week(now-timedelta(daysnow.weekday())).strftime(%Y-%m-%d)first_day_monthnow.replace(day1).strftime(%Y-%m-%d)last_month(now.replace(day1)-timedelta(days1)).strftime(%Y-%m)# 生成文件名filenamef销售日报_{now.strftime(%Y%m%d)}.xlsxbackup_pathfD:/备份/{now.strftime(%Y%m)}/{filename}# 计算流程运行时长start_timedatetime.now()# ... 执行操作 ...elapsed(datetime.now()-start_time).total_seconds()print(f执行耗时:{elapsed:.1f}秒)第六步自定义全局变量——扩展系统变量系统变量不够用时自己定义全局变量补充在影刀中创建全局变量 变量名: COMPANY_NAME 变量值: XX科技有限公司 作用域: 所有流程 在任意流程中使用 【打印日志】→ 欢迎使用{COMPANY_NAME}RPA系统全局变量适合存公司名称、默认邮箱、API基础URL、固定的配置项。有什么坑坑一日期格式的跨平台兼容现象用{当前日期}生成的文件名在Windows上正常传到Linux服务器上路径有问题。原因日期格式中的分隔符在Windows和Linux上兼容性不同。解决文件名中只用YYYYMMDD紧凑格式无分隔符❌ 文件名: 报表_2025-03-15.xlsx → -在某些系统中有特殊含义 ✅ 文件名: 报表_20250315.xlsx → 纯数字到处兼容坑二{当前日期}在跨天执行时的漂移现象流程在23:59开始跑跑到00:02才结束生成的文件名日期不一致。原因{当前日期}每次引用时都会重新计算。23:59时是3月15日00:02就变成3月16日了。TEMU店群如何管理运营解决在流程开始时把日期固定下来# 在流程第一个Python节点中固定日期fixed_datedatetime.now().strftime(%Y-%m-%d)fixed_datetimedatetime.now().strftime(%Y%m%d_%H%M%S)# 后续全部用fixed_date和fixed_datetime不再用{当前日期}坑三用户桌面目录在服务器上不存在现象流程部署到Windows Server上后引用{用户桌面目录}报路径不存在。原因服务器通常没有桌面环境或者是以SYSTEM账户运行。解决importos# 安全获取路径desktopos.path.join(os.path.expanduser(~),Desktop)ifnotos.path.exists(desktop):desktopos.path.join(os.path.expanduser(~),Documents)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ee3a157fdd394e47969c5707c6c5d9e2.png#pic_center)# 更好的做法不要依赖桌面统一用固定目录output_dirD:/rpa_outputos.makedirs(output_dir,exist_okTrue)坑四{流程名称}不适用于子流程现象在子流程中读取{流程名称}拿到的是子流程的名称不是主流程的。如果你想要的是发起这次执行的主流程名子流程中的{流程名称}不是你需要的。需要主流程在调用子流程前把流程名作为参数传进来。坑五时间戳的精度不够现象批量操作中同一秒内生成的文件名相同导致文件覆盖。解决加毫秒级精度fromdatetimeimportdatetime# 精确到毫秒的文件名filenamedatetime.now().strftime(%Y%m%d_%H%M%S_%f)[:-3].xlsx![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c314ead124a2414f85bd7911bf05545e.png#pic_center)# 结果: 20250315_143025_123.xlsx总结影刀的系统变量就是你的流程元数据。善用它们你的流程会变得更通用不依赖硬编码路径、更可追溯日志中有时间戳和机器信息、更少出Bug不用自己实现时间处理逻辑。核心原则能用系统变量的地方就不要自己写。