找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21890|回复: 6

[其他] 【已解决】批处理for,if语句出问题

[复制链接]
发表于 2021-8-18 11:49:20 | 显示全部楼层 |阅读模式
本帖最后由 看电池 于 2021-8-19 14:43 编辑

想把·坐标区分为45个分区,全用if太肝,所以用了for,if可wz却没有值(xy就是随机的坐标)
  1. :p1
  2. data\patch\t.exe 0 -1 1
  3. set /a X=%g1:~0,-3%
  4. set /a Y=%g1%-1000*%X%
  5. set w1=0
  6. set zx=4
  7. set zy=5
  8. for /l %%i in (0 1 5) do (
  9. set /a zy1=!zy!+4
  10. for /l %%i in (0 1 9) do (
  11. set /a zx1=!zx!+7
  12. set /a w1=!w1!+1
  13. if !x! geq !zx! if !x! leq !zx1! if !y! geq !zy! if !y! leq !zy1! set wz=!w1!
  14. )
  15. )
  16. echo !wz!
  17. pause
  18. goto p1
复制代码
发表于 2021-8-18 13:45:18 | 显示全部楼层
  1. setlocal enabledelayedexpansion
复制代码
发表于 2021-8-18 13:51:17 | 显示全部楼层
if命令有问题
 楼主| 发表于 2021-8-18 14:35:37 | 显示全部楼层
回复 3# cmd1152


什么问题啊?
发表于 2021-8-18 22:37:14 | 显示全部楼层
回复 1# 看电池


1、启用变量延迟扩展
2、在第13行命令上面加一行观察一下那几个变量的值自己算算if条件可能为真吗
  1. echo !x! geq !zx! if !x! leq !zx1! if !y! geq !zy! if !y! leq !zy1!
复制代码
 楼主| 发表于 2021-8-19 10:12:31 | 显示全部楼层
回复 5# Batcher


    谢谢问题得到部分解决,但只能显示第一行序号,但其他行都是零是怎么回事啊
  1. :p2
  2. cls
  3. echo 请放置
  4. data\patch\t.exe 0 -1 1
  5. set g1=%errorlevel%
  6. set /a x=%g1:~0,-3%
  7. set /a y=%g1%-1000*%X%
  8. set w1=0
  9. set wz=0
  10. set zx=4
  11. set zy=1
  12. set zy1=5
  13. set zx1=11
  14. for /l %%i in (0 1 5) do (
  15. set /a zy=!zy!+4
  16. set /a zy1=!zy1!+4
  17. for /l %%i in (0 1 9) do (
  18.   set /a zx1=!zx1!+7
  19.   set /a zx=!zx!+7
  20.   set /a w1=!w1!+1
  21. if !x! geq !zx! if !x! leq !zx1! if !y! geq !zy! if !y! leq !zy1! set wz=!w1!
  22. )
  23. )
  24. echo !x!,!y!
  25. echo !wz!
  26. pause
  27. goto p2
复制代码
发表于 2021-8-19 20:53:36 | 显示全部楼层
回复 6# 看电池


    还是老办法,你觉得哪一行不应该是零,就再它上面一行加个echo观察一下到底是哪个环节出了问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 21:08 , Processed in 0.031430 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表