【WINDOWS / DOS 批处理】批处理文件的参数 、标签的参数

发布于:2022-11-29 ⋅ 阅读:(292) ⋅ 点赞:(0)

一、批处理文件的参数

执行批处理文件时,可以给其传递参数。参数位于批处理文件名后,使用空白分隔。例如:在“C:\>demo.bat  arg1  arg2”命令中,arg1是传递给demo.bat的第一个参数,arg2是传递给demo.bat的第二个参数。

在批处理文件中,使用 %0 表示批处理文件本身,使用 %1 来接收传递给它的第一个参数,使用 %2 接收传递给它的第二个参数 ... 使用 %9 接收传递给它的第九个参数。使用 %* 接收传递给它的全部参数。

        示例

::demo.bat
@echo off
echo first arg: %0
echo first arg: %1
echo second arg: %2
echo third arg: %3
echo four arg: %4
echo five arg: %5
echo six arg: %6
echo seven arg: %7
echo eight arg: %8
echo nine arg: %9
::  %10 被解析为 %1 和 0
echo error arg: %10
echo all arg: %*

        运行 

C:\>demo.bat  arg0 arg1  arg2  arg3  arg4  arg5  arg6  arg7  arg8  arg9
batch file self: demo.bat
first arg: arg0
second arg: arg1
third arg: arg2
four arg: arg3
five arg: arg4
six arg: arg5
seven arg: arg6
eight arg: arg7
nine arg: arg8
error arg: arg00     // %1是arg0,故这里为arg00
all arg: arg0 arg1  arg2  arg3  arg4  arg5  arg6  arg7  arg8  arg9
C:\>

总结

  • %0 代表批处理文件自身(例如上例中的demo.bat)
  • %1 接收传递给批处理文件的第一个参数,%2 接收第二个参数 ... %9 接收第九个参数
  • %9 后面的变量(例如:%10)是无效的
  • %* 接收所有参数(可以无限多个,不只接收前九个参数)
  • %0-%9%* 用于批处理文件,在DOS命令行环境使用则无效
  • %0-%9 能被扩充,但是 %* 不能被扩充

扩充变量 https://blog.csdn.net/mt15306338066/article/details/127214009

二、标签的参数

什么是标签 

使用call命令调用标签时,也可以给标签传递参数

  • 和在命令行给批处理文件传参一样,给标签传参,也使用 %0 - %9 和 %*,区别:批处理文件参数 %0 表示批处理文件本身,而标签参数 %0 表示标签本身
  • 只有标签被call命令调用时,标签中的 %0 - %9 和 %* 才会被解析为call命令给标签传递过来的参数。如果标签不是被call命令调用,在其它情况下标签被执行时(例如:goto :label或批处理文件按照程序流程执行标签中的代码),标签中的 %0 - %9 和 %* 会被解析为批处理文件的参数
  • 标签的 %0-%9 也能被扩充, %* 也不能被扩充

        示例 

::demo.bat
@echo off
echo batch file self: %0
echo batchFile first arg: %1
echo batchFile second arg: %2

call :target t1 t2
echo the line after call

:target
echo 0 in lable: %0
echo 1 in lable: %1
echo 2 in lable: %2

        运行 

写作不易,如果本文帮到了您,请您 “在下面一圈三连”。


网站公告

今日签到

点亮在社区的每一天
去签到