Board logo

标题: [请教]参数传递 [打印本页]

作者: apareon     时间: 2009-11-26 21:11    标题: [请教]参数传递

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 ]
作者: wo1234     时间: 2009-11-27 13:46
这个不难理解吧  有教学贴的 找找置顶帖