标题: [其他] 【已解决】批处理for,if语句出问题 [打印本页]
作者: 看电池 时间: 2021-8-18 11:49 标题: 【已解决】批处理for,if语句出问题
本帖最后由 看电池 于 2021-8-19 14:43 编辑
想把·坐标区分为45个分区,全用if太肝,所以用了for,if可wz却没有值(xy就是随机的坐标)- :p1
- data\patch\t.exe 0 -1 1
- set /a X=%g1:~0,-3%
- set /a Y=%g1%-1000*%X%
- set w1=0
- set zx=4
- set zy=5
- for /l %%i in (0 1 5) do (
- set /a zy1=!zy!+4
- for /l %%i in (0 1 9) do (
- set /a zx1=!zx!+7
- set /a w1=!w1!+1
- if !x! geq !zx! if !x! leq !zx1! if !y! geq !zy! if !y! leq !zy1! set wz=!w1!
- )
- )
- echo !wz!
- pause
- goto p1
复制代码
作者: cmd1152 时间: 2021-8-18 13:45
加- setlocal enabledelayedexpansion
复制代码
作者: cmd1152 时间: 2021-8-18 13:51
if命令有问题
作者: 看电池 时间: 2021-8-18 14:35
回复 3# cmd1152
什么问题啊?
作者: Batcher 时间: 2021-8-18 22:37
回复 1# 看电池
1、启用变量延迟扩展
2、在第13行命令上面加一行观察一下那几个变量的值自己算算if条件可能为真吗- echo !x! geq !zx! if !x! leq !zx1! if !y! geq !zy! if !y! leq !zy1!
复制代码
作者: 看电池 时间: 2021-8-19 10:12
回复 5# Batcher
谢谢问题得到部分解决,但只能显示第一行序号,但其他行都是零是怎么回事啊- :p2
- cls
- echo 请放置
- data\patch\t.exe 0 -1 1
- set g1=%errorlevel%
- set /a x=%g1:~0,-3%
- set /a y=%g1%-1000*%X%
- set w1=0
- set wz=0
- set zx=4
- set zy=1
- set zy1=5
- set zx1=11
- for /l %%i in (0 1 5) do (
- set /a zy=!zy!+4
- set /a zy1=!zy1!+4
- for /l %%i in (0 1 9) do (
- set /a zx1=!zx1!+7
- set /a zx=!zx!+7
- set /a w1=!w1!+1
- if !x! geq !zx! if !x! leq !zx1! if !y! geq !zy! if !y! leq !zy1! set wz=!w1!
- )
- )
- echo !x!,!y!
- echo !wz!
- pause
- goto p2
复制代码
作者: Batcher 时间: 2021-8-19 20:53
回复 6# 看电池
还是老办法,你觉得哪一行不应该是零,就再它上面一行加个echo观察一下到底是哪个环节出了问题。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |