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文件如何处理传入的参数文本
又如何以变量的形式在下文引用,请高手给出详细说明,谢谢 展开
(txt扩展名可以是任意的,这里txt只是个例子)
当外部运行
abc.bat C:\123\456\test.txt
这样%1的内容就是C:\123\456\test.txt
那么如果我想得到
test
或
test.txt
或
C:\123\456\
或
C
怎么写代码实现
换句话说,就是BAT文件如何处理传入的参数文本
又如何以变量的形式在下文引用,请高手给出详细说明,谢谢 展开
3个回答
展开全部
@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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
for /f %%i in ("%1") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
for /f %%i in ("%1") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
for /f "delims=" %%i in ("%*") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
for /f "delims=" %%i in ("%*") do (
echo %%~ni
echo %%~nxi
echo %%~dpi
echo %%~di
)
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询