结论:参数长度9个以内不用特殊操作,超过9个时引用需要特殊操作(shift)。
1.Bat脚本新建和执行
参考: https://blog.csdn.net/xijinno1/article/details/129760609
2.参数传递和引用的一般方式
引用变量用%var%,调用程序外部参数用%0至%9等等
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令行传递给批处理的参数
%0批处理文件本身,包括完整的路径和扩展名
%1 第一个参数
%9 第九个参数
%*从第一个参数开始的所有参数
参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。
例:最简单的复制文件自身的方法
copy %0d:\wind.bat
小技巧:添加行内注释
%注释内容%(可以用作行内注释,不能出现重定向符号和管道符号)
为什么这样呢?此时“注释内容”其实被当作变量,其值是空的,故只起注释作用,不过这种用法容易出现语法错误,一般不用。
示例(非路径):输出%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*的结果
@echo off
echo 您输入了参数0-9:%1 %2 %3 %4 %5 %6 %7 %8 %9
echo 您输入了参数*:%*
运行截图:
J
示例(路径):输出%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*的结果
代码同上,输入时,路径用双引号括起来。
运行截图:
3.bat 传递超过 10个参数的情况
从上文可知批处理文件中可引用的参数为%0%9, %0 是指批处理文件的本身,也可以说是一个外部命令:%1%9 是批处理参数,也称形参:而替换形参的实参若超过了批处理文件中所规定数值 (9 个)且想在批处理文件中应用这些实参的话,shift 命令可以帮你实现!
Shift 命令:更改批处理文件中可替换参数的位置
shift[/n]
n 的取值是[0.8],且为整数:[/n]为可选参数,当赋予n 某个值时,就意味着命令从第n 个参数开始移位;当 n 赋予的值为 0,1 或不带有任何命令选项的 shift 时,则表示批处理文件中替换参数左移一个位置,后面的替换参数陆续填补上去,直至可替换参数为空。
例如:Shift /2;会将 %3移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。
示例:展示Shift [/n]的各种n值
@echo off
echo 您输入了参数*:%*
echo 您输入了参数(1-9):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /0
echo 您输入了参数(s0):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /1
echo 您输入了参数(s1):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /2
echo 您输入了参数(s2):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /3
echo 您输入了参数(s3):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /4
echo 您输入了参数(s4):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /5
echo 您输入了参数(s5):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /6
echo 您输入了参数(s6):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /7
echo 您输入了参数(s7):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift /8
echo 您输入了参数(s8):%1 %2 %3 %4 %5 %6 %7 %8 %9
shift
echo 您输入了参数(s):%1 %2 %3 %4 %5 %6 %7 %8 %9
运行截图:
版权归原作者 西晋的no1 所有, 如有侵权,请联系我们删除。