Board logo

标题: 关于修改日期格式的问题 [打印本页]

作者: #four#     时间: 2006-11-15 04:16    标题: 关于修改日期格式的问题

请问在一个文本文件里如何把日期格式2006-1-1改为2006-01-01,而形如2005-10-11的格式保持不变.用批处理如何实现。
作者: zh159     时间: 2006-11-15 04:55
set Date$=2006-1-1
if "%Date$:~6,1%"=="-" set Date$=%Date$:~0,5%0%Date$:~5,1%%Date$:~6%
if "%Date$:~-2,1%"=="-" set Date$=%Date$:~0,-1%0%Date$:~-1%
echo %Date$%
作者: ccwan     时间: 2006-11-15 05:18
这貌似不是在一个文本文件里把日期格式2006-1-1改为2006-01-01
作者: namejm     时间: 2006-11-15 06:28
  给一段演示代码:
@echo off
:: 假设 test.txt 中只有 2006-1-1 这一行内容,其余情形请自行扩充
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=-" %%i in (test.txt) do (
    set str1=%%j
    set str2=%%k
    if "!str1:~1!"=="" set str1=0!str1!
    if "!str2:~1!"=="" set str2=0!str2!
    echo %%i-!str1!-!str2!
)
pause

作者: ccwan     时间: 2006-11-15 06:43
哈哈。谢谢,我省事了。
作者: #four#     时间: 2006-11-15 07:04
谢谢namejm的帮助
  本人是个初学者
  但是这句的判断我还是不太明白  if "!str1:~1!"=="" set str1=0!str1!
                                               if "!str2:~1!"=="" set str2=0!str2!
谁能给我说说,我在这里先谢了.
作者: namejm     时间: 2006-11-15 07:17
RE #four#
  请看这个帖子:[简单索引]关于SET变量、延时变量、各种符号的用法……,你要的答案在顶楼的最后一个链接中。
作者: zh159     时间: 2006-11-15 07:40
if "!str1:~1!"=="" set str1=0!str1!
if "!str2:~1!"=="" set str2=0!str2!

可以换为

    if !str1! LSS 10 set str1=0!str1!
    if !str2! LSS 10 set str2=0!str2!