结论:参数长度9个以内不用特殊操作,超过9个时引用需要特殊操作(shift)。

1.Bat脚本新建和执行

参考:

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 您输入了参数*:%*

运行截图:




bat 调用 java 传递所有参数 bat文件传递参数_bat


J

示例(路径):输出%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*的结果

代码同上,输入时,路径用双引号括起来。

运行截图:


bat 调用 java 传递所有参数 bat文件传递参数_bat 调用 java 传递所有参数_02


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

运行截图:


bat 调用 java 传递所有参数 bat文件传递参数_服务器_03