BAT传入参数如何处理 20

我想在自己写的一段BAT文件中实现如下功能,假设我写的是abc.bat (txt扩展名可以是任意的,这里txt只是个例子) 当外部运行 abc.bat C:\123\456\test.txt 这样%1的内容就是C:\123\456\test.txt 那么如果我想得到 test 或 test.txt 或 C:\123\4... 展开
我有更好的答案
推荐于2017-11-23 11:52:24 最佳答案
此组合键会扩充到
空字符串

可以组合修饰符来得到多重结果:I - 查找列在路径环境变量的目录;? 帮助的解释

%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH。如果环境变量名
未被定义,或者没有找到文件,并将 %I 扩充
到找到的第一个完全合格的名称@echo off
echo %~n1
echo %~nx1
echo %~dp1
echo %~d1
pause

这是cmd 中 for/

lidajiangzw

采纳率:40% 擅长: 编程语言

其他回答

@echo off
for /f "delims=" %%i in ("%*") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
麦兜Terran | 发布于2010-04-11
评论
@echo off
for /f %%i in ("%1") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
1063971928qq | 发布于2010-04-11
评论

为您推荐:

×

类别

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

说明

0/200

提交
取消