中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 13:06
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求以修改日期为文件名的重命令批处理!
可打印版本  2,247 / 13
第1楼 tianzizhi 发表于 2006-11-25 05:46
高级用户 发帖 214 积分 623
求以修改日期为文件名的重命令批处理!
求用批处理批量完成以文件创建或修改日期加时间为名的重命名文件的批处理,
如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 ]
第2楼 youxi01 发表于 2006-11-25 06:32
高级用户 发帖 247 积分 846 来自 湖南==》广东
@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
第3楼 redtek 发表于 2006-11-25 08:06
金牌会员 发帖 1,147 积分 2,902
测试2楼代码~:)



精彩~:)
第4楼 runwater 发表于 2007-02-28 09:14
初级用户 发帖 11 积分 26
如何保留住原文件名??????
@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
第5楼 lxmxn 发表于 2007-02-28 09:52
版主 发帖 4,938 积分 11,386
第6楼 runwater 发表于 2007-02-28 10:04
初级用户 发帖 11 积分 26
太好了!我是初入门者,请多指教,我刚试了下,很好!
第7楼 runwater 发表于 2007-02-28 10:05
初级用户 发帖 11 积分 26
再多问句,能不能实现在当前目录下操作呢?
第8楼 lxmxn 发表于 2007-02-28 10:10
版主 发帖 4,938 积分 11,386
Originally posted by runwater at 2007-2-27 21:05:
再多问句,能不能实现在当前目录下操作呢?

  要操作当前目录,可以将“set FolderPath=F:\test”一句修改为“set FolderPath=.”即可。
第9楼 ieutk 发表于 2007-02-28 10:51
初级用户 发帖 48 积分 107
谢谢,又学到一招了啊!
第10楼 runwater 发表于 2007-03-01 00:00
初级用户 发帖 11 积分 26
哈哈,我也学会了!
第11楼 runwater 发表于 2007-03-01 02:36
初级用户 发帖 11 积分 26
@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


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 ]
第12楼 6622186 发表于 2007-03-01 12:16
高级用户 发帖 411 积分 894
写得非常好, 不过不支持空格(要使用短文件名), 并且每次运行前都要修改, 我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
第13楼 Eblis 发表于 2007-03-01 17:45
中级用户 发帖 108 积分 251 来自 湖南==>广州
set T=!T::=-! lxmxn能不能解释下?``这句没明白``
第14楼 slore 发表于 2007-03-02 00:52
铂金会员 发帖 2,478 积分 5,212
set的帮助有啊

作用是把:替换成-
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023