无忧启动论坛

标题: dos 下如何判断日期格式 ? [打印本页]

作者: 2012_amwyy    时间: 2012-3-19 18:20
标题: dos 下如何判断日期格式 ?
有多台 2003 系统,date 格式各不相同,有些为 1:mon mm/dd/yyyy    另一些为 2:mm/dd/yyyy mon
如何才能判断 系统的日期格式 并执行不同的语句:
1用 for /F "tokens=2,3,4 delims=/ " %%d in ('date /T') do ( set d=%%f%%d%%e)

2用 for /F "tokens=1,2,3 delims=/ " %%d in ('date /T') do ( set d=%%f%%d%%e)
作者: pznpt    时间: 2012-3-19 20:06
猜想楼主是不是要将两种不同的时间格式用一个变量b表示呢?
  1. @echo off
  2. for /f "tokens=1-4 delims=/ " %%d in ('date /t') do (
  3.     echo %%d|findstr "^[0-9]">nul&&set b=%%f%%d%%e
  4.     echo %%g|findstr "[0-9]$">nul&&set b=%%g%%e%%f
  5. )
  6. echo %b%
  7. pause
复制代码

没有测试环境,楼主试试看吧。
作者: 2012_amwyy    时间: 2012-3-19 21:46
原帖由 pznpt 于 2012-3-19 20:06 发表
猜想楼主是不是要将两种不同的时间格式用一个变量b表示呢?
@echo off
for /f "tokens=1-4 delims=/ " %%d in ('date /t') do (
    echo %%d|findstr "^[0-9]">nul&&set b=%%f%%d%%e
    echo %%g|findstr ...



是的,就是这种结果,太感谢您了
作者: dos时代菜鸟    时间: 2012-3-21 09:34
1、系统 自己 不是有 变量 %date% 存放当前日期么?不用输入 命令 date /t
2、直接判断 变量 %date% 的 第三个 字符 是否为 "/" 就可以了。 如果是 就 采用 %date% 的 前十个字符,否则用 后 十个字符。

没有 2003 系统环境,不好测试。

楼主 看看这句话 行不行:
if %date:~2,1%==/ (echo %date:~0,10%) else (echo %date:~-10%)

另 :
if %date:~2,1%==/ (set t=%date:~0,10%) else (set t=%date:~-10%)
echo %t:~6,4%/%t:~0,2%/%t:~3,2%

[ 本帖最后由 dos时代菜鸟 于 2012-3-21 09:47 编辑 ]
作者: 2011hnfeng    时间: 2012-3-23 17:39
不同系统的%DATE%格式确实不同:

简体Windows7中是 2012/03/23 周五   
简体Windows2003是 2012-03-23 星期五




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3