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

[文本处理] 批处理如何按日期重命名文件名?

[复制链接]
 楼主| 发表于 2014-11-6 12:49:13 | 显示全部楼层
回复 12# nnszuo


    ????谁能解释
set y=1%date:~5,2%
set k=%date:~0,4%
if "%y%"=="101" (set /a y+=12&set /a k-=1)
set /a y-=1
echo %k%年%y:~1,2%月
发表于 2014-11-8 13:22:43 | 显示全部楼层
受到启发,感谢楼主!交个作业,做个日期为:年月日
  1. echo %date:~0,4%年%date:~5,2%月%date:~8,2%日
复制代码
 楼主| 发表于 2014-11-8 14:51:56 | 显示全部楼层
回复 17# wbwchina

获取当前日期我知道,我不知道获取上月的算法?因此,请教老师以下代码每一句的意思:

set y=1%date:~5,2%
set k=%date:~0,4%
if "%y%"=="101" (set /a y+=12&set /a k-=1)
set /a y-=1
echo %k%年%y:~1,2%月
发表于 2014-11-9 13:49:23 | 显示全部楼层
本帖最后由 nnszuo 于 2014-11-9 13:57 编辑
回复  7016427
楼主是想这样结果吧
terse 发表于 2014-11-4 00:28

看了这个取上月的批处理太受打击了,通过变量就能取月份,还是这么精简的代码
重做了个批处理,虽然代码还很多水平有限没办法再精简了
  1. @echo off
  2. set /a k=1%date:~5,2%-1
  3. set /a y=%k%/101*%k%+100/%k%*112
  4. set /a n=%date:~0,4%-100/%k%
  5. echo %n%年%y:~1,2%月
  6. pause
复制代码
这个衍生出来的取上N个月的
  1. @echo off
  2. set /p d=请输入你要减去的月份:
  3. set /a k=1%date:~5,2%-%d%%%12
  4. set /a y=%k%/101*%k%+100/%k%*(%k%+12)
  5. set /a n=%date:~0,4%-%d%/12-100/%k%
  6. echo %n%年%y:~1,2%月
  7. pause
复制代码
 楼主| 发表于 2014-11-9 21:04:24 | 显示全部楼层
回复 19# nnszuo

辛苦了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 17:22 , Processed in 0.030760 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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