有人可以向我解释为什么这不会只显示if
命令中给出的范围之间的数字的结果?无论我尝试过什么,它都会不断显示所有结果,尽管给出了范围。我已经查看了this answer,但它不起作用。例如,如果我写if %ans% LEQ 8 GOTO :2
,它将显示所有小于8的数字的结果,而不是仅仅介于5和8之间(这是我想要显示的数字)。
set num1=%1
set num2=%2
set /a ans=num1+num2
if %ans% LEQ 4 GOTO :1
if %ans% GTR 4 if %ans% LEQ 8 GOTO :2
if %ans% GTR 8 if %ans% LEQ 16 GOTO :3
if %ans% GRT 16 if %ans% LEQ 32 GOTO :4
:1
echo # Host Req # Mask # Netmask # Max Supported #
echo %ans% /30 255.255.255.252 4
echo.
:2
echo # Host Req # Mask # Netmask # Max Supported #
echo %ans% /29 255.255.255.248 8
echo.
:3
echo # Host Req # Mask # Netmask # Max Supported #
echo %ans% /28 255.255.255.240 16
echo.
:4
echo # Host Req # Mask # Netmask # Max Supported #
echo %ans% /27 255.255.255.224 32
echo.
答案 0 :(得分:2)
这就是我这样做的方式:
public enum _Data
{
P,
B,
T,
}
public enum _BeadColors
{
BLUE,
RED,
NONE,
}
public _Data previousColor = _BeadColors.NONE;
class CustomClass{
}
//extension method for contains
public static bool Contains(this string input, _Data data){
string[] str = { "P", "B", "T" };
if(data == BaccaratScoreboard._Data.P){
return input.Contains (str [0]);
}
if(data == BaccaratScoreboard._Data.B){
return input.Contains (str [1]);
}
if(data == BaccaratScoreboard._Data.T){
return input.Contains (str [2]);
}
答案 1 :(得分:0)
根据IPv4 CIDR Blocks您的max supported
值是错误的:
在通常的用法中,子网中的第一个地址,主机标识符中的所有二进制零,保留用于引用网络本身,而最后一个地址,主机标识符中的所有二进制地址,用作广播地址对于网络;这样可以减少主机可用的地址数量。
Batch能够执行位掩码和移位操作来计算所需的值,从而无需使用不同的表。
:: Q:\Test\2018\05\31\SO_50615266.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
set num1=%1
set num2=%2
set /a ans=num1+num2
for /l %%L in (2,1,8) do (
set /a "Max=(1<<%%L)-2, Mask=32-%%L, OC4=254-Max"
If !Max! geq %ans% (
echo(## Calculated on %computername% by %username% at %date% %time:~0,8%
echo # Host Req # Mask # Netmask # Max Supported #
echo %ans% /!Mask! 255.255.255.!OC4! !Max!
echo(
Goto :Eof
)
)
Echo %ans% exceeds a class D net
样品输出:
> Q:\Test\2018\05\31\SO_50615266.cmd 1 1
## Calculated on HP-G1610 by LotPings at 2018-05-31 18:37:06,77
# Host Req # Mask # Netmask # Max Supported #
2 /30 255.255.255.252 2
> Q:\Test\2018\05\31\SO_50615266.cmd 14
## Calculated on HP-G1610 by LotPings at 2018-05-31 18:37:38
# Host Req # Mask # Netmask # Max Supported #
14 /28 255.255.255.240 14