You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell循环调用Invoke-RestMethod时日期变量传递问题求助

解决PowerShell循环中更新日期并调用接口的问题

核心问题在于你之前的脚本没有正确在循环内递增日期变量,导致每次调用接口都使用同一个日期值。以下是修正后的完整脚本,以及关键要点说明:

完整脚本示例

# 定义日期范围,转换为DateTime对象便于操作
$startDate = Get-Date "2022-02-01"
$endDate = Get-Date "2023-07-23"

# 初始化当前日期为起始日期
$currentDate = $startDate

# 遍历日期范围内的每一天
while ($currentDate -le $endDate) {
    # 将日期格式化为接口所需的字符串格式(如yyyy-MM-dd)
    $targetDate = $currentDate.ToString("yyyy-MM-dd")
    
    # 调用目标接口,替换为你的实际URL和参数结构
    $apiResponse = Invoke-RestMethod -Uri "https://your-api-endpoint?startdate=$targetDate" -Method Get
    
    # 生成以当日日期命名的JSON文件
    $outputFile = ".\$targetDate.json"
    $apiResponse | ConvertTo-Json -Depth 10 | Out-File -Path $outputFile -Encoding UTF8
    
    # 递增日期,进入下一天的循环
    $currentDate = $currentDate.AddDays(1)
    
    # 可选:添加接口调用延迟,避免触发限流策略
    Start-Sleep -Seconds 2
}

关键修正要点

  • 使用DateTime对象处理日期:避免直接操作字符串日期,利用Get-Date转换为DateTime类型,通过AddDays(1)轻松实现日期递增,彻底解决日期更新问题。
  • 循环内动态生成日期参数:每次循环都会基于当前$currentDate生成格式化后的$targetDate,确保接口调用的参数是当日日期。
  • JSON输出优化:添加-Depth 10参数避免嵌套对象被截断,保证JSON文件的完整性。
  • 可选限流保护:加入Start-Sleep控制调用频率,防止因短时间内大量请求被接口封禁。

内容的提问来源于stack exchange,提问作者pavan kumar kasaraneni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:38:20