[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
能否介绍一下代码是为了实现什么功能?
读一个错误的代码容易被带跑偏。

TOP

回复 3# zjpwang


if !m! equ %c%+1
if语句里面不支持算数运算,你这个条件永远不会成立。做个简单的试验就知道:
  1. @echo off
  2. set a=2
  3. set b=1
  4. if %a% equ %b%+1 (
  5.     echo yes
  6. ) else (
  7.     echo no
  8. )
  9. pause
复制代码
geq表示大于等于,equ表示等于。观察一下变量的值就知道equ在逻辑上无法实现你的想法:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=输入整数大于0:
  4. set /p b=输入整数小于a:
  5. set /a c=a/b
  6. set /a d=a-c*b
  7. set /a m=0,n=1
  8. for /l %%i in ( 1 1 %a% ) do (
  9.     echo %%i >>abc-!n!.txt
  10.     set /a m=m+1
  11.     echo !m! --- %d% --- %c% --- !n!
  12.     if !n! leq %d% (
  13.         echo in if 1
  14.         if !m! equ %c%+1 (
  15.             echo in if 2
  16.             set m=0
  17.             set /a n=n+1
  18.         )
  19.     ) else (
  20.         echo in else
  21.         if !m! equ %c% (
  22.             set m=0
  23.             if !n! lss %b% (set /a n=n+1)
  24.         )
  25.     )
  26. )
  27. paues
复制代码
1

评分人数

TOP

返回列表