如何每周自动运行API批处理文件:从指定起始日期到上周完整周五
自动设置批处理起止日期(从指定日期到上周五)
以下是修改后的批处理脚本,会自动计算上周完整的周五作为结束日期,你只需要固定设置起始日期(比如2024-01-01),不用每周手动调整结束日期:
@echo off cd C:\scripts python api_report.py setlocal enabledelayedexpansion REM -------------------------- 只需修改这里的起始日期 -------------------------- REM 设置固定起始日期(格式:YYYY-MM-DD) set start_date=2024-01-01 REM -------------------------- 自动计算结束日期(上周五) -------------------------- REM 用PowerShell获取上周周五的日期:先取当前日期,减去当前星期数(周日为0,周六为6),再减2天得到上周五 for /f "tokens=1 delims= " %%E in ('powershell "$today = Get-Date; $lastFriday = $today.AddDays(-($today.DayOfWeek.value__ + 2)).ToString('yyyy-MM-dd'); echo $lastFriday"') do set end_date=%%E echo 起始日期: !start_date! echo 结束日期: !end_date! REM 循环遍历从起始日期到结束日期的每一天 for /L %%A in (0,1,365) do ( set "current_date=!start_date!" for /f "tokens=1-3 delims=-" %%B in ("!current_date!") do ( set year=%%B set month=%%C set day=%%D REM 设置输出文件名 set "output_file=%%B-%%C-%%D Rates.txt" REM -------------------------- 替换成你的API URL -------------------------- REM 这里替换成实际的API地址,用%%B/%%C/%%D填充日期参数 set "formatted_url=https://example.com/rates/%%B-%%C-%%D" echo 正在处理: !current_date! echo 请求URL: !formatted_url! REM 用curl下载内容到文件 curl --ssl-no-revoke "!formatted_url!" -o "!output_file!" REM 日期加1天,准备下一次循环 for /f "tokens=1 delims= " %%E in ('powershell "(Get-Date -Date '!current_date!').AddDays(1).ToString('yyyy-MM-dd')"') do set start_date=%%E REM 检查是否超过结束日期,超过则退出循环 if !start_date! gtr !end_date! ( goto endloop ) ) ) :endloop echo 所有日期处理完成。 pause
关键修改说明:
- 自动计算上周五:通过PowerShell脚本自动获取上周周五的日期,不用手动输入
end_date。逻辑是:取当前日期,减去当前星期的天数(比如今天是周三,就减3+2=5天,得到上周五)。 - 固定起始日期:你只需要在
set start_date=2024-01-01这一行设置一次起始日期,之后脚本会自动处理到上周五。 - 修复原脚本问题:删除了无效的
set "EXAMPLE"语句,保留了正确的URL设置部分,你需要把https://example.com/rates/%%B-%%C-%%D替换成实际的API地址。 - 增加日志输出:添加了起始/结束日期的提示,以及当前处理的日期,方便你查看运行状态。
内容的提问来源于stack exchange,提问作者GRob
相关产品推荐
相关产品推荐

