批处理改文件名,改后的文件名以当天日期为文件名

请问这个代码该怎么写!谢谢
就是运行后,自动改文件名,
比如今天日期是2007-10-25
文件名为 ABC.rar
那么修改 后的文件名为 ABC2007-10-25.rar

非常感谢

第1个回答  2007-10-27
你把下面的代码复制下来,保存为批处理,然后把这个批处理放到你要转换的文件所在的目录下运行就可以了。有什么问题请在我的百度空间里留言。

@echo off
SetLocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir *.* /a /b') do call :ss %%i
pause
:ss
set var=%*
set /a count=!count!+1
ren %var:~0,-4% %var:~0,-4%%date:~0,4%%date:~5,2%%date:~8,2%%var:~-4%
EndLocal
第2个回答  2007-10-30
楼上的,应该给文件名加上引号,这样可以处理带空格的文件名.
另:不需要启动变量延迟
再加一句,防止把批处理自身重命名.就更完美了.
@echo off
for /f "delims=" %%a in ('dir/b/a-d') do (
if not "%%~nxa"=="%~nx0" (
ren "%%a" "%%~na%date:~0,10%%%~xa"
))
第3个回答  2007-10-28
我知道忆林子是个高手,不过,好像碰到扩展名是四个的,如html这个就不灵了.
%date:~0,4%%date:~5,2%%date:~8,2%

日期这段要改成这样才符合楼主要求.
%date:~0,10%

刚才实验了一下,好像更严重,不能用.

所以我写一个吧:P

@echo off
SetLocal EnableDelayedExpansion
@for /f "delims=" %%i in ('dir *.* /a /b') do (
echo ren %%i %%~ni%date:~0,10%%%~xi
)
EndLocal

我这个只持任意的扩展名,没有扩展名也支持.

用时把ren 前面的echo 去掉
第4个回答  2007-10-25
去百度上下一个软件,我不太清楚是哪个,自己去试试!文件名应该是xxx.exe或xxx.bat本回答被提问者采纳
相似回答
大家正在搜