标题: 如何获取类似20071212这样的日期?
[打印本页]
作者: lvjing79
时间: 2007-12-13 14:25
标题: 如何获取类似20071212这样的日期?
假如当天日期是2007-12-12,那么用date /t命令后会输出:
“2007-12-12 星期三”
这样的字符串。
但要获得20071212该怎么弄呢?
我知道的一个办法是截取字符串,然后拼凑出20071212。但有一个问题,在有些电脑上面,日期格式并非如此,截取的算法会非常复杂,要考虑非常多的可能性。
还有一个问题,假如日期是2007-1-1,我想得到20070101呢?这个1月和1日之前的“0”该怎么补上去呢?
我觉得用批处理很难完成,或许各位高手有办法,请帮忙指点一下,多谢!
作者: 26933062
时间: 2007-12-13 14:36
:
@echo off
for /f "tokens=1-3 delims=-/ " %%a in ('date/t') do echo %%a%%b%%c
pause
[
Last edited by 26933062 on 2007-12-13 at 02:37 PM ]
作者: lxmxn
时间: 2007-12-13 14:37
不知道这个可不可以?
@echo off
for %%a in (%date%) do (
echo\%%a|findstr /r "^[0-9]"
if errorlevel 0 (set mydate=%%a
call echo %%mydate:-=%%
goto :end
)
)
:end
pause
作者: lvjing79
时间: 2007-12-13 14:50
多谢指点。
不过一旦更改了系统的区域里面的日期设置,这个就没有用了。
我想这个问题估计只能依靠第三方程序或者vbs来解决。
我查到一个以前的帖子,有一个DateX的第三方工具,先拿来研究一下看看,如果不行再动用vbs吧。
作者: lvjing79
时间: 2007-12-13 16:05
研究了一下datex这个工具,但有一个地方还是无法实现。
假如今天是2007.12.01,我想要把2007.10.01-2007.10.31的全部日期都列出来,如果按照datex这个工具,只能用-o这个参数设置日期天数的偏移量,但我又如何知道12.01和10.01之间的日期差呢?
作者: lxmxn
时间: 2007-12-13 18:17
Quote: |
Originally posted by lvjing79 at 2007-12-13 16:05:
研究了一下datex这个工具,但有一个地方还是无法实现。
假如今天是2007.12.01,我想要把2007.10.01-2007.10.31的全部日期都列出来,如果按照datex这个工具 ... |
|
@echo off
rem 列出2007-2-22号到2007-3-30号之间所有的日期
rem 需要利用datex.exe命令
set begin_date=2007-02-22
set end_date=2007-03-30
set num=0
Setlocal enableDelayedExpansion
:startagain
for /f %%a in ('datex -d %begin_date% -o !num!') do set mydate=%%a
echo %mydate%
set/a num+=1
if "%mydate%"=="%end_date%" goto :end
goto :startagain
:end
pause
作者: wuhansky
时间: 2007-12-13 18:26
@set dst=%date:~0,4%%date:~5,2%%date:~8,2%
@md %dst%
作者: zh159
时间: 2007-12-13 20:30
@echo off
>date_.vbs echo mm=right("0"^&month(date),2):dd=right("0"^&day(date),2):WScript.echo year(date)^&mm^&dd
for /f %%i in ('"cscript //nologo date_.vbs"') do echo %%i&del date_.vbs
pause
作者: lvjing79
时间: 2007-12-14 11:48
Quote: |
Originally posted by zh159 at 2007-12-13 08:30 PM:
[code]@echo off
>date_.vbs echo mm=right("0"^&month(date),2):dd=right("0"^&day(date),2):WScript.echo year(date)^&mm^&dd
for /f %%i in ('"cscript //nolo ... |
|
>date_.vbs
后面才跟echo语句,不是太清楚啊,呵呵
我记得是echo语句的输出用>重定向到vbs文件中啊,上面这样的写法又是怎么回事呢?
作者: zh159
时间: 2007-12-14 12:42
都一样,位置不同而已