中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 01:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for 循环中文件扩展名的开关问题 查看 974 回复 2
楼 主 for 循环中文件扩展名的开关问题 发表于 2007-01-15 10:41 ·  中国 广东 广州 白云区 电信
初级用户
积分 21
发帖 6
注册 2006-12-17 00:10
19年会员
UID 73746
性别 男
状态 离线
我要显示当前目录下所有jpg文件的文件名可以使用如下语句:
for %i in (*.jpg) do @echo %i

但我只想显示主文件名(不显示扩展名".jpg"),请问加入什么参数开关可以实现?


这个问题在一张旧贴中曾经提到,但没有讲是什么参数,我自己看help也查不到:
http://www.cn-dos.net/forum/viewthread.php?tid=12113

原文大意:
for %%c in (*.jpg) do ImageConverter %%c %%c.png
可以实现转换。问题是文件名全变成这种形式:***.JPG.PNG(字符全为大写)而我只想改变文件的后缀名,请问我应该怎样编写这个批处理文件?

willsort解答:
  如果是这样,问题就不难理解了。FOR解析*.jpg的参数时,缺省的将文件扩展名也赋予了%%C。如果你的系统是2k,XP,可以利用FOR的参数开关来仅仅解析文件的主文件名,具体参数请用FOR/?查询
2 发表于 2007-01-15 12:26 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

for %i in (*.jpg) do @echo 文件名:%~ni,扩展名:%~xi
3 发表于 2007-01-16 03:13 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 21
发帖 6
注册 2006-12-17 00:10
19年会员
UID 73746
性别 男
状态 离线
thanks!
论坛跳转: