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

[数值计算] [已解决]批处理计算日期时赋值变量怎么调用?

  1. @echo
  2. setlocal enabledelayedexpansion
  3. set /a day=%date:~5,2%%date:~8,2%
  4. set /a month=%date:~5,2%%%100
  5. set days=0101,0201,0301,0401,0501,0601,0701,0801,0901,1001,1101,1201
  6. set yesterdays=1231,0131,0228,0331,0430,0531,0630,0731,0831,0930,1031,1130
  7. for /f "tokens=%month% delims=," %%i in ("%days%") do (
  8. if %day%==%%i (for /f "tokens=%month% delims=," %%a in ("%yesterdays%") do (set /a date=%date:~0,4%%%a)) else (set /a date=%date:~0,4%%date:~5,2%%date:~8,2% ))
  9. echo %date%
  10. pause
复制代码
下面for循环引用day不对了!!我找不出原因!!

[ 本帖最后由 hucuibai 于 2011-1-12 17:24 编辑 ]
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2

怎么没人帮忙看看!!

TOP

回复 3楼 的帖子

运行是可以!我就是想做一个取日期的操作!我以前用的
  1. set /a date=%date:~0,4%%date:~5,2%%date:~8,2%-1
  2. set date=%date:~0,8%
复制代码
用这个来取日期就是月初第一天的前一天 也就是一个月的最后一天取不到!所以我就想了这个比较笨的方法
这个运行是没问题  但是 下面for循环调用day变量就出错了!我是新手,搞不懂为什么,所有上来求教高手!

TOP

回复 5楼 的帖子

孤星同志!你这个是取的本月的最后一天吧!我是要求取前一天!也就是上个月的最后一天!而不是本月的!你这个好像我还看不太懂!!

TOP

回复 5楼 的帖子

哦 看错了  你这个是计算一个月有多少天,我是要取指定日期的时间 比如说20110201 我要取的就是20110131这个值

TOP

  1. @echo
  2. setlocal enabledelayedexpansion
  3. set /a day=%date:~5,2%%date:~8,2%
  4. set /a month=%date:~5,2%%%100
  5. echo %day%
  6. pause
复制代码


ECHO 处于打开状态。

C:\Documents and Settings\Administrator\桌面>setlocal enabledelayedexpansion

C:\Documents and Settings\Administrator\桌面>set /a day=0201

C:\Documents and Settings\Administrator\桌面>set /a month=02%100

C:\Documents and Settings\Administrator\桌面>echo 129
129

C:\Documents and Settings\Administrator\桌面>pause
请按任意键继续. . .

[ 本帖最后由 hucuibai 于 2011-1-7 17:08 编辑 ]

TOP

返回列表