标题: [文件操作] 批处理如何批量修改文件名? [打印本页]
作者: 551909194 时间: 2012-5-26 21:01 标题: 批处理如何批量修改文件名?
本帖最后由 551909194 于 2012-5-30 20:54 编辑
我有很多的图片,以前手动给图片名前面加序号,格式为:“(序号)-(原文件名)”,序号为阿拉伯数字,有一位的,两位的,三位的,后来删去其中的一部分,现在想删去图片原来家的序号,重新给图片排序号,不想再手动改了,图片太多了,求帮帮忙怎么处理,可以用批处理。
作者: canyuexiaolang 时间: 2012-5-26 21:19
排序怎么排?
作者: 551909194 时间: 2012-5-27 08:15
按修改时间排序
作者: 551909194 时间: 2012-5-27 08:15
回复 2# canyuexiaolang
按修改时间排序。
作者: shisanban13 时间: 2012-5-27 08:36
关于bat我一无所知,
不过有个软件可以实现哦
Totalcmd
这个挺强大 不妨试试
作者: gawk 时间: 2012-5-27 08:50
回复 5# shisanban13
这个跟 Total Commander 是不是一个东西?
作者: canyuexiaolang 时间: 2012-5-27 08:50
- @echo off & setlocal enabledelayedexpansion
- pushd "test"
- for /f "tokens=1* delims=-" %%i in ('dir /a-d /b *-*') do (
- set /a num+=1
- ren "%%i-%%j" "!num! -%%j"
- )
- pause
复制代码
文件夹是test
作者: gawk 时间: 2012-5-27 08:59
- @echo off
- setlocal enabledelayedexpansion
- set n=1000
- for /f "tokens=1* delims=-" %%a in ('dir /s /b *.jpg') do (
- set /a n+=1
- ren "%%a-%%b" "!n!-%%b"
- )
复制代码
作者: 551909194 时间: 2012-5-27 19:18
回复 7# canyuexiaolang
找不对路径啊!
作者: 551909194 时间: 2012-5-27 19:20
回复 8# gawk
不行啊,文件名一千开头,而且不以时间排序!
作者: 551909194 时间: 2012-5-27 19:21
回复 8# gawk
不行啊,文件名变乱了!
作者: shisanban13 时间: 2012-5-28 08:55
回复 6# gawk
对,一个东东,最近也用上他的哈, 功能很实用呢!
作者: gawk 时间: 2012-5-28 13:17
回复 11# 551909194
说说是怎么个乱法
作者: huiwei 时间: 2012-5-29 15:15
- @echo off
- set ddd=21111000
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=-" %%i in ('dir /a-d /b /od *.jpg ') do (
- set /a ddd+=1
- ren "%%i-%%j" !ddd!"-%%j"
- )
- for /f "tokens=1* delims=1111" %%i in ('dir /a-d /b *.jpg ') do (
-
- ren "21111%%j" "%%j"
- )
- pause
复制代码
要改变序号位数,只须改变第一行代码中木尾0的个数即可。我刚进入批处理的世界,希望大家多多指教,谢谢。
作者: 551909194 时间: 2012-5-29 18:04
回复 8# gawk
有些文件名只是在前面自动加0,使序号达到三位数,有些则没有任何改变。
作者: 551909194 时间: 2012-5-29 18:11
回复 14# huiwei
放在图片所在文件夹中运行显示系统找不到指定文件
放在上一级文件夹中显示找不到找不到文件
有时文件名不改完
作者: 551909194 时间: 2012-5-29 18:13
回复 7# canyuexiaolang
文件名乱了
作者: huiwei 时间: 2012-5-30 14:33
本帖最后由 huiwei 于 2012-5-30 15:00 编辑
回复 16# 551909194
我以为你的文件全都是jpg呢, 你的图片不全是jpg文件。
我现在加上.png文件了,你在试一试
@echo off
set ddd=21111000
setlocal enabledelayedexpansion
for /f "tokens=1* delims=-" %%i in ('dir /a-d /b /od *.jpg *.png') do (
set /a ddd+=1
ren "%%i-%%j" !ddd!"-%%j"
)
for /f "tokens=1* delims=1111" %%i in ('dir /a-d /b *.jpg *.png ') do (
ren "21111%%j" "%%j"
)
pause
作者: 551909194 时间: 2012-5-30 19:22
回复 18# huiwei
我把set ddd=21111000改为set ddd=000就行了
作者: 551909194 时间: 2012-5-30 20:47
[attach]5359[/attach]回复 18# huiwei
那有些图片前我没加“序号-”,
只有文件名,能不能再修改时加上“序号-”?
作者: huiwei 时间: 2012-5-31 09:24
有个小建议,我看你的文件名与图片内容基本无关,可以改成序号-统一的文件名,看着还方便,
有序号的和没有序号的可以都放到一个目录下改。提示原文件名同时没有了。如果有要保留的原文件名一定要先移到其他的文件夹中。
程序代码:- @echo off
- set ddd=0
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=." %%i in ('dir /a-d /b /od *.jpg *.png') do (
- set /a ddd+=1
- ren "%%i.%%j" !ddd!"-照片.%%j"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |