master.bat
@echo off
if !%~1! == !--Instance! (
if !%~2! == !old! (
echo Old instance
set /p InstanceId= Enter the InstanceId:
echo %InstanceId%
)
if !%~2! == !new! (
echo New instance
)
) else (
if !%~1! neq !--Instance! (
echo Bad command: Unknown Flag/Switch %1
) else (
if !%~2! neq !new! **(
echo Bad command: Incorrect Flag value %2
)
)
)
Q1:上述代码适用于所有条件,但最后一个条件标记为(**)以获得可读性。我无法理解为什么? 我正在运行以下命令
master.bat --Instance abc
Q2:我还希望更改相同的(**)行以检查另一个值'old'(为清晰起见,引号)。怎么做 ?这会有用吗
if !%~2! neq !new! or !%~2! neq !old! (
echo Bad command: Incorrect Flag value %2
)
答案 0 :(得分:0)
回答q1:最后我认出了我的错误,实际上控件从未到达过阻挡区(**)。
回答q2:并对其上方的代码段进行细微更改将以预期的方式运行。
@echo off
setlocal
if !%~1! == !--Instance! (
if !%~2! == !old! (
echo Old instance
echo %InstanceId%
set /p InstanceId= Enter the InstanceId:
call DescribeOldEC2.bat %InstanceId%
echo %InstanceId%
) else (
if !%~2! == !new! (
echo New instance
) else (
echo Bad command: Incorrect Flag value %2
)
)
) else (
if !%~1! neq !--Instance! (
echo Bad command: Unknown Flag/Switch %1
)
endlocal