Board logo

标题: [文件操作] 批处理如何批量修改文件名? [打印本页]

作者: 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

  1. @echo off & setlocal enabledelayedexpansion
  2. pushd "test"
  3. for /f "tokens=1* delims=-" %%i in ('dir /a-d /b *-*') do (
  4.     set /a num+=1
  5.     ren "%%i-%%j" "!num! -%%j"
  6. )
  7. pause
复制代码
文件夹是test
作者: gawk    时间: 2012-5-27 08:59

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=1000
  4. for /f "tokens=1* delims=-" %%a in ('dir /s /b *.jpg') do (
  5.     set /a n+=1
  6.     ren "%%a-%%b" "!n!-%%b"
  7. )
复制代码

作者: 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

  1. @echo off
  2. set ddd=21111000
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=1* delims=-" %%i in ('dir  /a-d /b  /od *.jpg ') do (
  5. set /a ddd+=1
  6. ren "%%i-%%j"  !ddd!"-%%j"
  7. )
  8. for /f "tokens=1* delims=1111" %%i in ('dir  /a-d /b *.jpg  ') do (
  9. ren "21111%%j"  "%%j"
  10. )
  11. 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

有个小建议,我看你的文件名与图片内容基本无关,可以改成序号-统一的文件名,看着还方便,

有序号的和没有序号的可以都放到一个目录下改。提示原文件名同时没有了。如果有要保留的原文件名一定要先移到其他的文件夹中。
程序代码:
  1. @echo off
  2. set ddd=0
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=1* delims=." %%i in ('dir  /a-d /b  /od *.jpg *.png') do (
  5. set /a ddd+=1
  6. ren "%%i.%%j"  !ddd!"-照片.%%j"
  7. )
  8. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2