中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 19:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [请教]参数传递 查看 957 回复 1
楼 主 [请教]参数传递 发表于 2009-11-26 21:11 ·  中国 甘肃 张掖 中移铁通
新手上路
积分 9
发帖 7
注册 2007-08-16 20:29
18年会员
UID 95270
性别 男
状态 离线
DOS命令中可以传递参数,但对这个传递的参数格式有些不太理解,参考了官方的解释,但看不太明白,请教各位大侠能解释下,谢谢!

官方解释
%(可替换参数)
可替换参数 %0 和 %1 到 %9 可以放在批文件的任何位置。批处理文件运行时,%0 由批处理文件名替换,并且参数变量 %1 到 %9 由命令行上输入的相应参数替换。

% 参数扩展了批处理脚本参数变量 (%0, %1, ..., %9),如下所示:

批处理脚本中的 %* 是引用所有参数的通配符。对于单个参数变量,扩展选项如下表所述。
变量 描述
%~1 扩展 %1 并删除所有引号 (")
%~f1 将 %1 扩展到完全合格的路径名
%~d1 将 %1 扩展到驱动器盘符
%~p1 将 %1 扩展到路径
%~n1 将 %1 扩展到文件名
%~x1 将 %1 扩展到文件扩展名
%~s1 扩展的路径仅包含短名称
%~a1 将 %1 扩展到文件属性
%~t1 将 %1 扩展到文件日期/时间
%~z1 将 %1 扩展到文件大小
%~$PATH:1 搜索 PATH 环境变量中列出的目录,并将 %1 扩展到发现的第一个目录的完全合格的名称。如果没有定义环境变量名称,或搜
索没有找到文件,则此修改键扩展成空字符串。

修改键可以组合使用以得到复合结果:

变量 描述
%~dp1 将 %1 扩展到驱动器盘符和路径
%~nx1 将 %1 扩展到文件名和扩展名
%~dp$PATH:1 在 PATH 环境变量列出的目录中搜索 %1,并扩展到发现的第一个目录的驱动器盘符和路径
%~ftza1 将 %1 扩展到类似 dir 的输出行


参考官方解释,是不是可以这样理解
针对每个单个参数变量,可以自己组合成多个参数?
比如 使用这样的参数%~dpnx1 将 %1的传递参数扩展为盘符+路径+文件名+扩展名?
请教各位大侠,谢谢!

问这个问题是因为使用Xcopy复制文件时,提示目标是文件名,还是目录名

[ Last edited by apareon on 2009-11-26 at 21:31 ]
2 发表于 2009-11-27 13:46 ·  中国 山东 烟台 莱阳市 电信
新手上路
积分 18
发帖 17
注册 2009-05-14 00:12
17年会员
UID 145028
性别 男
状态 离线
这个不难理解吧 有教学贴的 找找置顶帖
论坛跳转: