|
lvjing79
初级用户
 
积分 36
发帖 15
注册 2007-11-23
状态 离线
|
『楼 主』:
如何获取类似20071212这样的日期?
假如当天日期是2007-12-12,那么用date /t命令后会输出:
“2007-12-12 星期三”
这样的字符串。
但要获得20071212该怎么弄呢?
我知道的一个办法是截取字符串,然后拼凑出20071212。但有一个问题,在有些电脑上面,日期格式并非如此,截取的算法会非常复杂,要考虑非常多的可能性。
还有一个问题,假如日期是2007-1-1,我想得到20070101呢?这个1月和1日之前的“0”该怎么补上去呢?
我觉得用批处理很难完成,或许各位高手有办法,请帮忙指点一下,多谢!
|
|
2007-12-13 14:25 |
|
|
26933062
银牌会员
    
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
2 楼』:
: @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 ]
|

致精致简! |
|
2007-12-13 14:36 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
3 楼』:
不知道这个可不可以? @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
|
|
2007-12-13 14:37 |
|
|
lvjing79
初级用户
 
积分 36
发帖 15
注册 2007-11-23
状态 离线
|
『第
4 楼』:
多谢指点。
不过一旦更改了系统的区域里面的日期设置,这个就没有用了。
我想这个问题估计只能依靠第三方程序或者vbs来解决。
我查到一个以前的帖子,有一个DateX的第三方工具,先拿来研究一下看看,如果不行再动用vbs吧。
|
|
2007-12-13 14:50 |
|
|
lvjing79
初级用户
 
积分 36
发帖 15
注册 2007-11-23
状态 离线
|
『第
5 楼』:
研究了一下datex这个工具,但有一个地方还是无法实现。
假如今天是2007.12.01,我想要把2007.10.01-2007.10.31的全部日期都列出来,如果按照datex这个工具,只能用-o这个参数设置日期天数的偏移量,但我又如何知道12.01和10.01之间的日期差呢?
|
|
2007-12-13 16:05 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
6 楼』:
Originally posted by lvjing79 at 2007-12-13 16:05:
研究了一下datex这个工具,但有一个地方还是无法实现。
假如今天是2007.12.01,我想要把2007.10.01-2007.10.31的全部日期都列出来,如果按照datex这个工具 ... @echo off
set begin_date=2007-02-22
set end_date=2007-03-30
set num=0
Setlocal enableDelayedExpansion
:startagain
for /f %%a in (
echo %mydate%
set/a num+=1
if "%mydate%"=="%end_date%" goto :end
goto :startagain
:end
pause
|
|
2007-12-13 18:17 |
|
|
wuhansky
初级用户
 
积分 33
发帖 12
注册 2007-12-11
状态 离线
|
『第
7 楼』:
@set dst=%date:~0,4%%date:~5,2%%date:~8,2%
@md %dst%
|
|
2007-12-13 18:26 |
|
|
zh159
金牌会员
     
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
8 楼』:
@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
|

|
|
2007-12-13 20:30 |
|
|
lvjing79
初级用户
 
积分 36
发帖 15
注册 2007-11-23
状态 离线
|
『第
9 楼』:
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文件中啊,上面这样的写法又是怎么回事呢?
|
|
2007-12-14 11:48 |
|
|
zh159
金牌会员
     
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
10 楼』:
都一样,位置不同而已
|

|
|
2007-12-14 12:42 |
|