找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 1358|回复: 5

[日期时间] [已解决] 求时分秒前添加前置0

[复制链接]
发表于 2025-12-2 18:57:57 | 显示全部楼层 |阅读模式
本帖最后由 chishingchan 于 2025-12-3 12:24 编辑

想下载某个安装包,但不知道文件全称,只知道规律:
1022是发布日期,代表 10月22日,从在线安装包中获取到的日期,但是也只能下载最新版本;
后面6位数字代表时分秒。
下面的批处理 %%i 代表时,由10时开始, %%i %%j 为分秒,但是当少于 9 时前面需要补 0,请老大们帮忙完善一下,谢谢!
  1. for /l %%i in (10,1,24) do (
  2.   for /l %%j in (1,1,59) do (
  3.     for /l %%k in (1,1,59) do (
  4.       wget --no-check-certificate http://a11.gdl.netease.com/MuMu-setup-V5.9.5.2110-1022%%i%%j%%k.exe
  5.     )
  6.   )
  7. )
复制代码
发布日期应该错误的,没下载成功!
还有,小时结束是23,不是24!
总结一下:
  1. @echo off
  2. cd /d %~dp0
  3. setlocal enabledelayedexpansion
  4. for /l %%i in (100,1,123) do (
  5.         set "hour=%%i"
  6.         set "hour=!hour:~-2!"
  7.     for /l %%j in (100,1,159) do (
  8.         set "minute=%%j"
  9.         set "minute=!minute:~-2!"
  10.         for /l %%k in (100,1,159) do (
  11.             set "second=%%k"
  12.             set "second=!second:~-2!"
  13.             wget --no-check-certificate http://a11.gdl.netease.com/MuMu-setup-V5.9.5.2110-xxxx!hour!!minute!!second!.exe
  14.         )
  15.     )
  16. )
复制代码
发表于 2025-12-2 19:30:03 | 显示全部楼层
本帖最后由 窄口牛 于 2025-12-3 13:11 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 小时循环(10-23,无需补零,但保持统一逻辑)
  4. for /l %%i in (10,1,23) do (
  5.     :: 分钟循环(0-59,补零为2位)
  6.     for /l %%j in (0,1,59) do (
  7.         set "minute=0%%j"          :: 拼接前缀0(变成00-059)
  8.         set "minute=!minute:~-2!"  :: 截取后2位(得到00-59)
  9.         
  10.         :: 秒循环(0-59,补零为2位)
  11.         for /l %%k in (0,1,59) do (
  12.             set "second=0%%k"       :: 拼接前缀0(变成00-059)
  13.             set "second=!second:~-2!" :: 截取后2位(得到00-59)
  14.             
  15.             :: 执行wget,使用补零后的分钟和秒
  16.             wget --no-check-certificate "http://a11.gdl.netease.com/MuMu-setup-V5.9.5.2110-1022%%i!minute!!second!.exe"
  17.         )
  18.     )
  19. )

  20. endlocal
复制代码

评分

参与人数 1技术 +1 收起 理由
chishingchan + 1 Think you!

查看全部评分

发表于 2025-12-2 23:09:11 | 显示全部楼层
回复 1# chishingchan


分秒从00开始还是01开始?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (10,1,24) do (
  4.     for /l %%j in (100,1,159) do (
  5.         set "minute=%%j"
  6.         set "minute=!minute:~-2!"
  7.         for /l %%k in (100,1,159) do (
  8.             set "second=%%k"
  9.             set "second=!second:~-2!"
  10.             wget --no-check-certificate http://a11.gdl.netease.com/MuMu-setup-V5.9.5.2110-1022%%i!minute!!second!.exe
  11.         )
  12.     )
  13. )
复制代码

评分

参与人数 1技术 +1 收起 理由
chishingchan + 1 Think you!

查看全部评分

发表于 2025-12-3 04:13:43 | 显示全部楼层
啊,应该是从00开始。
 楼主| 发表于 2025-12-3 12:25:52 | 显示全部楼层
回复 4# 窄口牛


    还有,小时应该以 23 结束
发表于 2025-12-4 15:49:49 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-12-4 16:00 编辑

回复 1# chishingchan

如果在 10:00:00-23:59:59 区间中仅是探测一个有效下载项,可试用以下代码,即一旦下载成功便立即退出循环,以免过多的循环冗余(无效调用 wget 的次数),其最优结果是第一次下载成功即退出,最差是直到最后一次下载成功...

  1. @echo off &setlocal enabledelayedexpansion
  2. for /l %%h in (10,1,23) do for /l %%m in (100,1,159) do for /l %%s in (100,1,159) do (
  3.    set "m=%%m" &set "s=%%s"
  4.    set "url=http://a11.gdl.netease.com/MuMu-setup-V5.9.5.2110-xxxx%%h!m:~-2!!s:~-2!.exe"
  5.    wget.exe --no-check-certificate "!url!"
  6.    if exist "!url:*.com/=!" goto:[end] )
  7. :[end]
  8. pause&exit/b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:05 , Processed in 0.026557 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表