Board logo

标题: 求以修改日期为文件名的重命令批处理! [打印本页]

作者: tianzizhi     时间: 2006-11-25 05:46    标题: 求以修改日期为文件名的重命令批处理!

求用批处理批量完成以文件创建或修改日期加时间为名的重命名文件的批处理,
如t.txt文件的修改日期为2006-11-24 14:24
则t.txt重命令为2006-11-24 14-24.txt(文件名里不允许用:,所以用-来代替)

希望大家帮帮忙,谢谢!!!!

[ Last edited by tianzizhi on 2006-11-25 at 05:47 AM ]
作者: youxi01     时间: 2006-11-25 06:32
@echo off

set FolderPath=F:\test

echo 程序正在运行......
setlocal enabledelayedexpansion
for /r %FolderPath% %%i in (*) do (
    set T=%%~ti
    set T=!T::=-!
    ren "%%i" "!T!%%~xi")
echo.
echo 修改完毕
pause>nul
作者: redtek     时间: 2006-11-25 08:06
测试2楼代码~:)
改名之前:
2006-11-24  18:53                82 1.xml.love
2006-11-24  18:52                82 a.xml
2006-11-24  18:50               330 run.bat
2006-11-24  19:02               239 t.bat

改名的文件名为  T.BAT,执行改名操作:

2006-11-24  18:50               330 2006-11-24 18-50.bat
2006-11-24  18:52                82 2006-11-24 18-52.xml
2006-11-24  18:53                82 2006-11-24 18-53.love
2006-11-24  19:02               239 2006-11-24 19-02.bat
精彩~:)
作者: runwater     时间: 2007-2-28 09:14    标题: 如何保留住原文件名??????

@echo off

set FolderPath=F:\test

echo 程序正在运行......
setlocal enabledelayedexpansion
for /r %FolderPath% %%i in (*) do (
    set T=%%~ti
    set T=!T::=-!
    ren "%%i" "!T!%%~xi")  这块如何处理呀??就是说原文件名加上文件日期
echo.
echo 修改完毕
pause>nul
作者: lxmxn     时间: 2007-2-28 09:52

ren "%%i" "%%~ni_!T!%%~xi"

作者: runwater     时间: 2007-2-28 10:04
太好了!我是初入门者,请多指教,我刚试了下,很好!
作者: runwater     时间: 2007-2-28 10:05
再多问句,能不能实现在当前目录下操作呢?
作者: lxmxn     时间: 2007-2-28 10:10


  Quote:
Originally posted by runwater at 2007-2-27 21:05:
再多问句,能不能实现在当前目录下操作呢?

  要操作当前目录,可以将“set FolderPath=F:\test”一句修改为“set FolderPath=.”即可。
作者: ieutk     时间: 2007-2-28 10:51
谢谢,又学到一招了啊!
作者: runwater     时间: 2007-3-1 00:00
哈哈,我也学会了!
作者: runwater     时间: 2007-3-1 02:36
@echo off

set FolderPath=F:\test

echo 程序正在运行......
setlocal enabledelayedexpansion
for /r %FolderPath% %%i in (*) do (
    set T=%%~ti
    set T=!T::=-!
    ren "%%i" "%%~ni_!T!%%~xi"
echo.
echo 修改完毕
pause>nul

  Quote:
Originally posted by lxmxn at 2007-2-27 09:10 PM:

  要操作当前目录,可以将“set FolderPath=F:\test”一句修改为“set FolderPath=.”即可。

哭!!!!!!!!!改成“set FolderPath=.”后出现死循环呀!!!!!幸亏我及时中断了,否则我事个盘里的文件名字会很长哟!!!!!!!!!!!!!!!!!
样例:
huangshan2007-01-31 14-462007-01-31 14-462007-01-31 14-46.jpg
taishan22007-01-31 14-462007-01-31 14-462007-01-31 14-46.jpg
xiangshan2007-01-31 14-472007-01-31 14-472007-01-31 14-47.jgp

[ Last edited by runwater on 2007-2-28 at 01:38 PM ]
作者: 6622186     时间: 2007-3-1 12:16
写得非常好, 不过不支持空格(要使用短文件名), 并且每次运行前都要修改, 我l加了引号,并改为从键盘手动输入, 略加修改, 望大家不要见笑。

@echo off
title 将文件以日期命名
set /p chgdir=请输入目录:

echo 程序正在运行......
setlocal enabledelayedexpansion
for /r "%chgdir%" %%i in (*) do (
    set T=%%~ti
    set T=!T::=-!
    ren "%%i" "!T!%%~xi")
echo.
echo 修改完毕
pause>nul
作者: Eblis     时间: 2007-3-1 17:45
set T=!T::=-!    lxmxn能不能解释下?``这句没明白``
作者: slore     时间: 2007-3-2 00:52
set的帮助有啊

作用是把:替换成-