BAT传入参数如何处理

我想在自己写的一段BAT文件中实现如下功能,假设我写的是abc.bat(txt扩展名可以是任意的,这里txt只是个例子)当外部运行abc.batC:\123\456\te... 我想在自己写的一段BAT文件中实现如下功能,假设我写的是abc.bat
(txt扩展名可以是任意的,这里txt只是个例子)

当外部运行
abc.bat C:\123\456\test.txt

这样%1的内容就是C:\123\456\test.txt
那么如果我想得到
test

test.txt

C:\123\456\

C
怎么写代码实现

换句话说,就是BAT文件如何处理传入的参数文本
又如何以变量的形式在下文引用,请高手给出详细说明,谢谢
展开
 我来答
lidajiangzw
2010-04-11 · TA获得超过903个赞
知道小有建树答主
回答量:774
采纳率:0%
帮助的人:717万
展开全部
@echo off
echo %~n1
echo %~nx1
echo %~dp1
echo %~d1
pause

这是cmd 中 for/? 帮助的解释

%~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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
余明煦3o
2010-04-11 · TA获得超过439个赞
知道小有建树答主
回答量:1389
采纳率:0%
帮助的人:753万
展开全部
@echo off
for /f %%i in ("%1") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦兜Terran
2010-04-11 · TA获得超过2571个赞
知道小有建树答主
回答量:1786
采纳率:0%
帮助的人:1168万
展开全部
@echo off
for /f "delims=" %%i in ("%*") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式