字符串变量中使用通配符实现每日报表自动化的问题
自动化提取带可变后缀的每日报表解决方案
1. Power Automate(微软生态,多数企业认可)
- 基于已建立的服务器文件连接(如SMB),将现有日期变量(月/日)与固定文件名前缀拼接,用
*通配符替代末尾6位可变数字,示例格式:Report_2024%Month%%Day%*.xlsx - 使用列出文件夹中的文件动作,将筛选条件设为拼接后的通配符路径
- 若当日仅存在一个目标报表,直接取匹配结果的第一项执行后续操作(如复制、提取内容);若存在多个匹配文件,可添加条件判断过滤
2. Python脚本(通用型方案,企业IT普遍接受)
- 借助
glob模块实现通配符匹配,示例代码:import glob import datetime import shutil # 同步现有变量逻辑获取当前月日 today = datetime.datetime.today() year = today.strftime("%Y") month = today.strftime("%m") day = today.strftime("%d") # 构建带通配符的文件名模板 file_template = f"Report_{year}{month}{day}*.xlsx" # 替换为你的实际服务器共享路径 target_files = glob.glob(r"\\your-server\target-folder\" + file_template) # 处理匹配到的文件(示例:复制到本地目录) local_dir = r"C:\your-local-folder\" for file in target_files: shutil.copy(file, local_dir) print(f"已提取文件:{file}") - 可将脚本打包为独立exe(通过PyInstaller),或提交给IT部门配置为每日定时任务
3. Windows批处理脚本(轻量无依赖)
- 利用Windows原生命令的通配符支持,示例脚本:
@echo off setlocal enabledelayedexpansion :: 获取当前日期的年/月/日(格式可根据系统日期格式调整) set "year=%date:~10,4%" set "month=%date:~4,2%" set "day=%date:~7,2%" :: 构建文件名匹配模板 set "file_pattern=Report_%year%%month%%day%*.xlsx" set "server_path=\\your-server\target-folder\" :: 遍历匹配文件并执行操作(示例:复制到本地) for %%f in ("%server_path%%file_pattern%") do ( copy "%%f" "C:\your-local-folder\" echo 已提取文件:%%f ) - 保存为
.bat文件后,通过Windows任务计划程序设置每日自动执行
内容的提问来源于stack exchange,提问作者CoJoS
相关产品推荐
相关产品推荐

