[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何批量修改文件名?

本帖最后由 551909194 于 2012-5-30 20:54 编辑

我有很多的图片,以前手动给图片名前面加序号,格式为:“(序号)-(原文件名)”,序号为阿拉伯数字,有一位的,两位的,三位的,后来删去其中的一部分,现在想删去图片原来家的序号,重新给图片排序号,不想再手动改了,图片太多了,求帮帮忙怎么处理,可以用批处理。

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

有序号的和没有序号的可以都放到一个目录下改。提示原文件名同时没有了。如果有要保留的原文件名一定要先移到其他的文件夹中。
程序代码:
  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
复制代码

TOP

[attach]5359[/attach]回复 18# huiwei


    那有些图片前我没加“序号-”,
只有文件名,能不能再修改时加上“序号-”?

TOP

回复 18# huiwei


我把set ddd=21111000改为set ddd=000就行了

TOP

本帖最后由 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

TOP

回复 7# canyuexiaolang


文件名乱了

TOP

回复 14# huiwei


    放在图片所在文件夹中运行显示系统找不到指定文件

放在上一级文件夹中显示找不到找不到文件

有时文件名不改完

TOP

回复 8# gawk


    有些文件名只是在前面自动加0,使序号达到三位数,有些则没有任何改变。

TOP

  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的个数即可。我刚进入批处理的世界,希望大家多多指教,谢谢。

TOP

回复 11# 551909194


    说说是怎么个乱法

TOP

回复 6# gawk
对,一个东东,最近也用上他的哈, 功能很实用呢!

TOP

回复 8# gawk


    不行啊,文件名变乱了!

TOP

回复 8# gawk


    不行啊,文件名一千开头,而且不以时间排序!

TOP

回复 7# canyuexiaolang


  找不对路径啊!

TOP

  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. )
复制代码

TOP

返回列表