Board logo

标题: [文件操作] 批处理如何取出文件里,所有文件名中的日期和时间进行重命名 [打印本页]

作者: limminsara    时间: 2011-11-8 16:56     标题: 批处理如何取出文件里,所有文件名中的日期和时间进行重命名

你好,我需要你的帮忙,
请问如何删除如下
一个文件夹内有许多文件,格式的jpg和txt的。如下所示

ATH120-Main-2011-11-06T17-42-48.443Z.jpg
ATH120-Main-2011-11-06T17-42-48.443Z.txt
BL121-Main-2011-11-06T17-41-11.540Z.jpg
BL21-Main-2011-11-06T17-41-11.540Z.txt

我想删除第二个“-”前面的所有字符,文件名中的字母T全部替换为"-",以及第一个"."后面的文件名,结果变成:
2011-11-06-17-42-48.jpg
2011-11-06-17-42-48.txt
2011-11-06-17-41-11.jpg
2011-11-06-17-41-11.txt

简而言之,就是取出文件名中得日期和时间,按照YYYY-MM-DD-HH-MM-SS进行重命名

请求高手写一批处理程序完成,谢谢!
作者: limminsara    时间: 2011-11-8 17:08

还有就是,此批处理文件,在此文件夹内,而且它的名称不得修改。如:重命名.bat
作者: sxw    时间: 2011-11-8 18:01

自己搜索解决
作者: awk    时间: 2011-11-8 22:34

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-9 delims=-." %%a in ('dir /b ^| findstr "\.txt$ \.jpg$"') do (
  4.     set newname=%%c-%%d-%%e-%%f-%%g
  5.     set newname=!newname:T=-!
  6.     ren %%a-%%b-%%c-%%d-%%e-%%f-%%g.%%h.%%i !newname!.%%i
  7. )
复制代码

作者: limminsara    时间: 2011-11-9 12:01

我是脚本新手,非常谢谢AWK,功能非常实用。
作者: lvsehuaxue    时间: 2011-11-9 13:37

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     set "str=%%i"
  4.     for /l %%a in (1 1 2) do (
  5.         set "str=!str:*-=!"
  6.     )
  7.     set "str=!str:t=-!"
  8.     echo !str:~,-9!%%~xi
  9. )
  10. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2