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

批处理计算1+2+3+4+...+100=?

[复制链接]
发表于 2024-1-9 20:45:19 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 100) do (
    set /a summ=!summ!+%%i
)
echo %summ%&pause>nul
发表于 2024-3-20 08:25:51 | 显示全部楼层
@echo off
set summ=0
for /l %%i in (1 1 100) do (
        set /a summ+=%%i
)
echo %summ%&pause>nul
发表于 2024-3-20 08:30:46 | 显示全部楼层
@echo off
:sc_start
set /a a+=1
set /a c+=%a%
if %a%==100 (goto end) else (goto sc_start)
:end
echo %c%&pause>nul
发表于 2024-3-20 09:01:08 | 显示全部楼层
回复 153# 唯尘
  1. @echo off
  2. :sc_start
  3. set /a ThisNum+=1
  4. set /a Sum+=ThisNum
  5. if not %ThisNum%==100 (
  6.     goto :sc_start
  7. )

  8. :end
  9. echo %Sum%
  10. pause
复制代码
1、尽可能的使用有意义的变量名。
2、set /a 计算的时候,等号右边的变量可以不加百分号。
3、在这个特定场景下if命令的else可以省略。
4、除了非常特殊的情况,尽量不使用&把多个命令写在同一行。
发表于 2024-3-20 09:08:30 | 显示全部楼层
回复 151# 唯尘
  1. @echo off
  2. for /l %%i in (1 1 100) do (
  3.     set /a Sum=Sum+%%i
  4. )
  5. echo %Sum%
  6. pause
复制代码
set /a放在for循环内部计算的时候,如果自定义变量需要出现在等号右边,可以不加百分号或感叹号,这样就不必显式的开启变量延迟扩展了。
发表于 2024-4-24 08:13:56 | 显示全部楼层
@echo off
for /l %%i in (1 1 100) do (
        call set /a a=a+%%i
)
echo %a%
pause>nul
发表于 2024-4-24 08:41:30 | 显示全部楼层
回复 156# 唯尘


    call是多余的,在这个代码里面没有任何用处,可以去掉。
发表于 2024-5-6 08:49:27 | 显示全部楼层
@echo off
for /l %%i in (1 1 100) do (
        call set /a num+=%%i
)
echo %num%&pause>Nul
exit
发表于 2025-8-26 08:55:56 | 显示全部楼层
回复 154# Batcher


    感谢大神指点~
发表于 2025-8-26 08:56:40 | 显示全部楼层
回复 157# Batcher



    学到了~
发表于 2025-10-29 23:11:59 | 显示全部楼层
@echo off&setlocal enabledelayedexpansion
set "num="
for /l %%i in (0,1,100) do (
set "num=!num!%%i+"
)
set "num=%num:~0,-1%"

set /a sum=%num%

echo %sum%

pause
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 20:01 , Processed in 0.019858 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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