中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 23:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样批量改文件名 查看 1,090 回复 13
楼 主 怎样批量改文件名 发表于 2010-08-03 22:07 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
我用数码相机拍了相片,相片名全是SAM_00**.JPG,怎样建一个批处理把所有的相片名中的SAM_去掉, 变成00**.JPG
2 发表于 2010-08-03 22:34 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
都睡觉了吗
3 发表于 2010-08-03 23:42 ·  中国 广东 汕头 电信
初级用户
★★
积分 131
发帖 72
注册 2008-02-24 14:31
18年会员
UID 111317
性别 男
状态 离线
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
ren %%i !%%i:SAM_=!
)
pause


试试看,不包能用。。。
4 发表于 2010-08-04 00:11 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
不能用啊,执行后生成了一个SAM_的文件,批处理窗口显示"存在一个重名文件,或是找不到文件"
5 发表于 2010-08-04 00:35 ·  中国 重庆 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
@echo off&setlocal EnableDelayedExpansion
for %%i in (*.jpg) do (
set "str=%%i"
ren "%%i" "!str:SAM_=!"
)
6 发表于 2010-08-04 07:45 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
OK了.
set "str=%%i"
ren "%%i" "!str:SAM_=!"
)
这段代码可以详细的解释一下吗,学批处理一段时间了,主要是FOR 和SET搞不明白
7 发表于 2010-08-04 08:31 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
Originally posted by chinesechrist at 2010-8-3 22:07:
我用数码相机拍了相片,相片名全是SAM_00**.JPG,怎样建一个批处理把所有的相片名中的SAM_去掉, 变成00**.JPG


这个很简单

ren sam_*.jpg " *.jpg"


Windows XP sp3 测试通过
8 发表于 2010-08-04 08:40 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
发现楼上的还是没有通过,竟然创建了文件名首部带半角空格的文件。
9 发表于 2010-08-04 09:19 ·  中国 重庆 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
无视此楼!

[ Last edited by WANKOILZ on 2010-8-4 at 09:32 ]
10 发表于 2010-08-04 17:59 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
ren sam_*.jpg " *.jpg"
Windows XP sp3 测试通过
---------可是文件名多了四个空格
11 发表于 2010-08-04 20:40 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
Originally posted by chinesechrist at 2010-8-4 17:59:
ren sam_*.jpg " *.jpg"
Windows XP sp3 测试通过
---------可是文件名多了四个空格


嗯,是的,8楼已指明了。有感于此贴,写了个重命名文件的小工具。暂命名为xren.exe,利用Jscript正则

   用法: 
      xren 文件类型 匹配文件名的正则  替换后的文件名

例如: 
1. 把当前目录下的所有jpg文件,文件名中的所有半角空格替换为_


xren jpg "/ /gi" "_"




2.在当前目录的所有TXT文件的文件名前加上www.cn-dos.net_


xren txt "/^/" www.cn-dos.net_




3.去掉所有形如 Story_www.example.com.txt 类文件名中的网址


xren txt "/_www\.example\.com\.txt$/" ".txt"


。。。。。

暂举这么多,顺便说下xren jpg "/^SAM_/" 可以解决楼主的问题;)

[ Last edited by freeants001 on 2010-8-4 at 21:56 ]
12 发表于 2010-08-05 06:55 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
谢谢你的XREN,很不错的软件
13 发表于 2010-08-05 07:02 ·  中国 广东 深圳 联通
新手上路
积分 5
发帖 7
注册 2010-07-31 23:39
16年会员
UID 171565
性别 男
状态 离线
具体的用法规则还是不懂,用xren /?也没有帮助信息,
14 发表于 2010-08-05 08:37 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
这个用法很简单,就不写帮助了,只是利用JScript正则,下面再举个子匹配的例子。

例如网上下了一些歌曲名- 歌手.mp3的mp3文件,而这些歌曲的内部标签很乱或根本没有,想把这些歌曲改名为 歌手 - 歌曲名.mp3的形试,可以


xren mp3 "/(.*) - (.*)\.mp3/i" "$2 - $1.mp3"


[ Last edited by freeants001 on 2010-8-5 at 08:40 ]
论坛跳转: