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

为何批处理FOR循环中当前时间无法更新?

为什么批处理FOR循环里的时间戳始终不变?

这问题我之前也踩过一模一样的坑!核心原因是你虽然开了延迟扩展,但没用到正确的变量引用方式——批处理里%变量%的展开时机是整个语句执行前,你的for循环在开始运行前,%time%就被一次性解析成了循环启动时的时间,所以不管循环跑多少次,输出的都是同一个时间。

要解决这个问题,得把%time%改成!time!,因为延迟扩展的!变量!是每次循环迭代时实时解析的,这样每次循环都能获取当前的最新时间。另外你的脚本里还有个小笔误:循环变量是%%B,但你写了%%~xG,这会导致扩展名输出错误,得改成%%~xB。

修正后的完整脚本如下:

@echo off
setlocal enabledelayedexpansion
for /R "C:\Users\user\Desktop\BdayClip" %%B in (*.*) do (
    echo "!time::=-!%%~xB"
    choice /d y /t 1 > nul
)

运行这个脚本后,每次等待1秒输出的时间戳就会正常更新了,比如你会看到类似6-32-13.35.png、6-32-14.36.png这样随时间变化的结果。

内容的提问来源于stack exchange,提问作者Jorden Krowen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:32:40