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... 展开
推荐于2016-03-16 19:28:23 最佳答案
并将 %I 扩充
到找到的第一个完全合格的名称,并将 %I 扩充
到找到的第一个驱动器号和路径,此组合键会扩充到
空字符串

可以组合修饰符来得到多重结果。如果环境变量名
未被定义,或者没有找到文件:

%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录? 帮助的解释

%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/:I - 查找列在路径环境变量的目录;时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH@echo off
echo %~n1
echo %~nx1
echo %~dp1
echo %~d1
pause

这是cmd 中 for/

lidajiangzw

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

其他回答

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

为您推荐: