gpt4 book ai didi

windows - 将带有开关的参数传递给批处理文件

转载 作者:可可西里 更新时间:2023-11-01 13:29:29 26 4
gpt4 key购买 nike

无论指定 A 和 B 的顺序如何,如何显示与开关 A 和开关 B 关联的值?

考虑以下对批处理文件 ParamTest.cmd 的调用:

C:\Paramtest.cmd \A valueA \B valueB

C:\Paramtest.cmd 的内容如下:

ECHO Param1=%1
ECHO Param2=%2

ECHO Param3=%3
ECHO Param4=%4

输出:

Param1=\A 
Param2=valueA
Param3=\B
Param4=valueB

我希望能够识别通过它们的开关名称 A 和 B 传递的 两个 值,无论传递这些开关的顺序如何

例如,如果我执行以下调用:

C:\Paramtest.cmd \B valueB \A valueA

我希望能够显示

A=ValueA
B=ValueB

..即使我调用参数顺序切换的批处理文件也有相同的输出:

C:\Paramtest.cmd\A 值A\B 值B

我该怎么做?

最佳答案

简单来说就是定义一个循环,将参数成对处理。

我通常使用涉及标签和 GOTO 以及 SHIFT 的方法处理参数列表,基本上是这样的:


SET ArgA=<i>default for A</i>
SET ArgB=<i>default for B</i>

:loop
IF [%1] == [] GOTO continue
IF [%1] == [/A] …
IF [%1] == [/B] …
SHIFT & GOTO loop

:continue

也可以使用%* 掩码和FOR 循环来处理参数,如下所示:


SET ArgA=<i>default for A</i>
SET ArgB=<i>default for B</i>

FOR %%p IN (%*) DO (
IF [%%p] == [/A] …
IF [%%p] == [/B] …
)

但是对于你的情况来说有点困难,因为你需要成对处理参数。在我看来,第一种方法更灵活。

关于windows - 将带有开关的参数传递给批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6226587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com