中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 05:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么把没有扩展名的文件加上扩展名呀 查看 2,033 回复 15
楼 主 怎么把没有扩展名的文件加上扩展名呀 发表于 2008-07-12 13:21 ·  中国 广东 深圳 宝安区 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
怎么把没有扩展名的文件加上扩展名呀
下载的s.h.e的歌曲wma文件,有的有扩展名,有的没有,怎么把没有扩展名的文件加上扩展名呀
文件如下:
s.h.e-江南情怀intro
s.h.e-talking Ⅱ.wma
s.h.e-talking vi
s.h.e-有梦有朋友.wma
江南情怀s.h.e Ⅱ
飞轮海_s.h.e-只对你有感觉

[ Last edited by yywd on 2008-7-12 at 01:37 PM ]
2 发表于 2008-07-12 13:24 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线

@echo off
for /f "delmis=" %%i in ('dir /s /a-d /b 盘符:\s.h.e*') do if "%%~xi" neq ".wma" ren "%%i" %%~ni.wma


[ Last edited by zw19750516 on 2008-7-12 at 01:45 PM ]
批处理之家新域名:www.bathome.net
3 发表于 2008-07-12 13:40 ·  中国 广东 深圳 宝安区 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by zw19750516 at 2008-7-12 13:24:

@echo off
for /f "delmis=" %%i in ('dir /s /a-d /b s.h.e*') do if "%%~xi" neq ".wma" ren "%%i" %%~ni.wma


谢谢您的回复, 但是好像不行呀
4 发表于 2008-07-12 13:42 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by yywd at 2008-7-12 13:40:


谢谢您的回复, 但是好像不行呀

请问你是放到哪里运行的。
试试这个:

@echo off
for /r %%i in (*s.h.e*) do if "%%~xi" neq ".wma" ren "%%i" %%~ni.wma

ps:二楼的开始写错了,已修改,请楼主将盘符:改成实际的盘符。

[ Last edited by zw19750516 on 2008-7-12 at 01:47 PM ]
批处理之家新域名:www.bathome.net
5 发表于 2008-07-12 13:46 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Q: 为什么不行啊?
A: 去电线杆上找个老军医的手机,他是专治+包治这个的。如果治疗周期较长,建议列出你的测试环境、测试用例、出错信息,供大家帮助你解决问题。
6 发表于 2008-07-12 14:10 ·  中国 广东 深圳 宝安区 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by zw19750516 at 2008-7-12 13:42:

请问你是放到哪里运行的。
试试这个:

@echo off
for /r %%i in (*s.h.e*) do if "%%~xi" neq ".wma" ren "%%i" %%~ni.wma

ps:二楼的 ...


s.h.e-talking vi 改成了 s.h.wma
江南情怀s.h.e Ⅱ 改成了 江南情怀s.h.wma
s.h.e-江南情怀intro 没有变
7 发表于 2008-07-12 14:18 ·  中国 山东 聊城 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
在文件夹属性里把隐藏后缀名这项去了,然后刷新下看看,是否有后缀了。向你这样音乐也有后缀名的也有没有的情况,估计是隐藏后缀名造成的。。
8 发表于 2008-07-12 14:20 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我明白了问题出在s.h.e中的.上面,这下总可以了吧:

@echo off&setlocal enabledelayedexpansion
for /r %%i in (*s.h.e*) do (
set str=%%~nxi&set str=!str:s.h.e=she!
ren "%%i" !str!
)
for /r %%i in (*she*) do if "%%~xi" neq ".wma" ren "%%i" "%%~ni.wma"


[ Last edited by zw19750516 on 2008-7-12 at 02:25 PM ]
批处理之家新域名:www.bathome.net
9 发表于 2008-07-12 14:32 ·  中国 广东 深圳 宝安区 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
Originally posted by zw19750516 at 2008-7-12 14:20:
我明白了问题出在s.h.e中的.上面,这下总可以了吧:

@echo off&setlocal enabledelayedexpansion
for /r %%i in (*s.h.e*) do (
set str=%%~nxi&set str=!str:s.h. ...


不要把s.h.e改成she,无法关联歌词

江南情怀s.h.e Ⅱ
s.h.e-talking vi
没有变动
10 发表于 2008-07-12 14:35 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
除了wma还有别的文件么?没有就纯dir吧没有扩展名的改了去·不要管SHE
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
11 发表于 2008-07-12 14:59 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线

@echo off&setlocal enabledelayedexpansion
for /f "delmis=" %%i in ('dir /s /a-d /b s.h.e*') do (
set "str=%%~nxi"
if /i not "!str:~-4!"==".wma" ren "%%i" "%%i.wma"
)
pasue


[ Last edited by 26933062 on 2008-7-12 at 03:09 PM ]
致精致简!
12 发表于 2008-07-12 15:03 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
26933062
第一高手 第二高手

13 发表于 2008-07-12 15:08 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
26933062和我几乎同时回贴的,所以我把自己的贴删掉了,不过26933062兄修正下应该是if /i not ren 换成move /y
@echo off&setlocal enabledelayedexpansion
for /r %%i in (*s.h.e*) do (
set "str=%%~i"
if /i not "!str:~-4!"==".wma" move /y "%%i" "%%i.wma"
)
pause


[ Last edited by fastslz on 2008-7-12 at 03:13 PM ]
第一高手 第二高手

14 发表于 2008-07-12 15:10 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
多谢提醒、以改正
粗心到如此地步,不可原谅啊!。。。
致精致简!
15 发表于 2008-07-12 15:24 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
另外一种方法
@echo off
for /f "delims=*" %%i in ('dir /s /a-d /b *s.h.e*^|findstr /i /e /v ".wma"') do move /y "%%i" "%%i.wma"
pause
第一高手 第二高手

论坛跳转: