批处理如何实现类似and 的判断条件

作者: 不详 2012/6/13 8:59:48

for /f  "delims= tokens=1" %%a in ('1.txt') do (
       
        if %%a leq 5120000 and %%b==xxx
        echo %%a
)

想实现这样子的应该怎么写,很多人也许还不知道

其实解决的办法很简单,只要两个if连着用就可以了

即:

if %i% lss 0 (if %j% equ 4 echo xxx)

如果您还想加else

原理也是一样,直接加两个else 就行了

if %i% lss 0 (
  if %j% equ 4 (echo ok
  ) else echo nok
) else echo nok

cmd 下 if 仅能处理最简单的逻辑表达式, set /a 的位运算是针对这个欠缺的补充

@echo off & setlocal enabledelayedexpansion
echo,TEST (i^<0 and j=4)

<nul (
  set /p "= i \ j"
  for /l %%j in (-3 1 6) do set "O=     %%j" & set /p "=!O:~-4!"
  echo,
  for /l %%i in (-2 1 3) do (
    set "O= %%i" & set /p "=!O:~-2!    "
    for /l %%j in (-3 1 6) do (
      set /a i=%%i, j=%%j
      set /a "r=(i>>31) & ^!(j-4)" & rem 31 取值为 cmd 下无符号数的位数 - 1
      if !r! equ 1 (set /p "=   T") else (set /p "=   F")
    )
    echo,
  )
)
pause

 

 

特别推荐

玩家留言 跟帖评论
查看更多评论