dos环境下获取完整路径中的文件名

折腾了大半个晚上,总算找着了这个问题的解决方案。
答案看上去是非常简单的,只要对dos命令略有研究的人应该很容易想到,可是对于我这样头次正面接触dos的人而言,可是花了九牛二虎之力!
 
要从一个完整的路径,比如/a/b/c/d/name.txt中获得其中的name.txt字段,其实只需要用到call 或for 命令独有的参数解析功能即可。我自己用的是call命令,如下所示:
Rem:full_name是完整路径,name是所要提取的文件名字段
call :getname %full_name
:getname
set name=%~n1
 
看上去非常简单,对于call和for命令而言,可以将输入给它们的参数做一些特殊的解析。对该功能的演示有更好的例子:
@ECHO OFF
SET/P FILEPATH=请输入你的完整路径:
if not defined FILEPATH goto :EOF
for,/f,"tokens=*",%%i,in,(%FILEPATH%),do,(
                 set a=%%~di
                 set b=%%~pi
                 set c=%%~nxi
)
echo %a%
echo %b%
echo %c%
pause

 

该批处理例子示范了如何从一个输入的完整路径名,分别取得盘符、目录和文件名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值