中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 21:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教BAT剥取文件后缀名的方法 查看 946 回复 5
楼 主 请教BAT剥取文件后缀名的方法 发表于 2006-05-27 21:24 ·  中国 四川 成都 电信
新手上路
积分 10
发帖 3
注册 2006-05-25 17:02
20年会员
UID 55987
状态 离线
我现在得到个这样的 路径
d:\uestc\23.txt
然后我想取得 23.txt 这个文件名字

我该怎么弄啊?

参考了N张帖子了 没有眉目 新手
急盼指点
2 发表于 2006-05-27 21:50 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
cmd下可以试试这样:
for %i in (d:\uestc\23.txt) do @echo %~nxi
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

3 发表于 2006-05-27 22:26 ·  中国 四川 成都 电信
新手上路
积分 10
发帖 3
注册 2006-05-25 17:02
20年会员
UID 55987
状态 离线
谢谢 ~~
完全成功~~
新手学习中 以后还要多多请教
4 发表于 2007-09-16 17:30 ·  中国 黑龙江 哈尔滨 电信
初级用户
★★
积分 160
发帖 73
注册 2007-09-13 13:37
18年会员
UID 97268
性别 男
状态 离线
for %i in (d:\uestc\23.txt) do @echo %~nxi


不明白啊。这怎么工作的解释解释给我这个新手听听被。
5 发表于 2007-09-16 21:01 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by scrate at 2007-9-16 17:30:
for %i in (d:\uestc\23.txt) do @echo %~nxi


不明白啊。这怎么工作的解释解释给我这个新手听听被。

请看for命令的帮助,最后面有解释:

~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串

可以组合修饰符来得到多重结果:

%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR

在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法
用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。
6 发表于 2007-09-17 00:32 ·  中国 北京 电信
新手上路
积分 6
发帖 3
注册 2007-08-22 21:43
18年会员
UID 95639
性别 男
状态 离线
慢慢琢磨着,还是看出点门道了,谢谢版主
论坛跳转: