|
tianzizhi
高级用户
积分 622
发帖 214
注册 2006-9-22
状态 离线
|
『楼 主』:
求以修改日期为文件名的重命令批处理!
求用批处理批量完成以文件创建或修改日期加时间为名的重命名文件的批处理,
如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 ]
|
|
2006-11-25 05:46 |
|
|
youxi01
高级用户
积分 846
发帖 247
注册 2006-10-27 来自 湖南==》广东
状态 离线
|
『第
2 楼』:
@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
|
|
2006-11-25 06:32 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
3 楼』:
测试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 精彩~:)
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-11-25 08:06 |
|
|
runwater
初级用户
积分 26
发帖 11
注册 2007-2-28
状态 离线
|
『第
4 楼』:
如何保留住原文件名??????
@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
|
|
2007-2-28 09:14 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
5 楼』:
ren "%%i" "%%~ni_!T!%%~xi"
|
|
2007-2-28 09:52 |
|
|
runwater
初级用户
积分 26
发帖 11
注册 2007-2-28
状态 离线
|
『第
6 楼』:
太好了!我是初入门者,请多指教,我刚试了下,很好!
|
|
2007-2-28 10:04 |
|
|
runwater
初级用户
积分 26
发帖 11
注册 2007-2-28
状态 离线
|
『第
7 楼』:
再多问句,能不能实现在当前目录下操作呢?
|
|
2007-2-28 10:05 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by runwater at 2007-2-27 21:05:
再多问句,能不能实现在当前目录下操作呢? |
|
要操作当前目录,可以将“set FolderPath=F:\test”一句修改为“set FolderPath=.”即可。
|
|
2007-2-28 10:10 |
|
|
ieutk
初级用户
积分 107
发帖 48
注册 2006-11-30
状态 离线
|
|
2007-2-28 10:51 |
|
|
runwater
初级用户
积分 26
发帖 11
注册 2007-2-28
状态 离线
|
|
2007-3-1 00:00 |
|
|
runwater
初级用户
积分 26
发帖 11
注册 2007-2-28
状态 离线
|
『第
11 楼』:
@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 ]
|
|
2007-3-1 02:36 |
|
|
6622186
高级用户
积分 894
发帖 411
注册 2007-2-17
状态 离线
|
『第
12 楼』:
写得非常好, 不过不支持空格(要使用短文件名), 并且每次运行前都要修改, 我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
|
|
2007-3-1 12:16 |
|
|
Eblis
中级用户
积分 251
发帖 108
注册 2007-1-7 来自 湖南==>广州
状态 离线
|
『第
13 楼』:
set T=!T::=-! lxmxn能不能解释下?``这句没明白``
|
DOS新人.多多指導 |
|
2007-3-1 17:45 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
14 楼』:
set的帮助有啊
作用是把:替换成-
|
|
2007-3-2 00:52 |
|