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
复制代码
|