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

批处理产生001到999之间的数字

[复制链接]
发表于 2008-12-6 13:55:59 | 显示全部楼层
  1. @echo off
  2. set /a num=%random%%%999+1
  3. if %num% lss 100 goto s
  4. echo %num%
  5. goto out
  6. :s
  7. if %num% lss 10 goto ss
  8. echo 0%num%
  9. goto out
  10. :ss
  11. echo 00%num%
  12. :out
  13. pause>nul
复制代码
发表于 2008-12-6 14:00:18 | 显示全部楼层
请教
  1. echo %%var:~-3%%
复制代码
中的:~-3怎么讲,是否是显示为3位?
发表于 2009-1-12 23:15:06 | 显示全部楼层
@echo off
for /l %%f in (001 1 999) do echo %%f
pause>nul
发表于 2009-1-14 10:36:50 | 显示全部楼层
@echo off
for /l %%i in (0,1,9) do (
for /l %%j in (0,1,9) do (
for /l %%k in (1,1,9) do (echo %%i%%j%%k)
)
)
pause

评分

参与人数 1PB +1 收起 理由
wxcute + 1 会缺许多整十数,请测试。

查看全部评分

发表于 2009-1-15 12:43:58 | 显示全部楼层
原帖由 随风 于 2008-1-7 19:28 发表
代码内容,设置的颜色为white,防止答案轻易泄露
显示方法 1:按住鼠标左键,框住代码即可。
显示方法 2:点击代码右上角的“复制内容到剪贴板”也可。
方法一、@echo off
set var=1000
:loop
set /a var+=1
...

其实选定就好了
发表于 2009-1-15 14:49:01 | 显示全部楼层
  1. @echo off
  2. for /l %%i in (1,1,9) do echo 00%%i
  3. pause
  4. for /l %%i in (10,1,99) do echo 0%%i
  5. pause
  6. for /l %%i in (100,1,999) do echo %%i
  7. pause
复制代码
发表于 2009-2-3 17:52:00 | 显示全部楼层
还是斑竹高手啊,我的方法太麻烦了

@echo off
setlocal enabledelayedexpansion
for /L %%i IN (1,1,999) DO (
if %%i LSS 10 (set var=00%%i) ELSE (
if %%i LSS 100 (set var=0%%i) ELSE (set var=%%i)
)
echo !var! >> rand.txt
)
发表于 2009-2-6 23:15:54 | 显示全部楼层
我来试试:
  1. @echo off
  2. for /l %%a in (001,1,999) do set /p=%%a < nul
  3. pause
复制代码
发表于 2009-2-7 16:49:25 | 显示全部楼层
@echo off
del 1.txt
for /l %%1 in (0,1,9) do (
for /l %%2 in (0,1,9) do (
for /l %%3 in (0,1,9) do (
echo %%1%%2%%3>>1.txt
)
)
)
start 1.txt

可以吧?

评分

参与人数 1PB +1 收起 理由
wxcute + 1 还行。

查看全部评分

发表于 2009-2-16 10:00:39 | 显示全部楼层

我来试下

  1. @echo off
  2. for /l %%i in (0,1,9) do (
  3.    for /l %%j in (0,1,9) do (
  4.       for /l %%k in (0,1,9) do (
  5.          set /p=%%i%%j%%k<nul
  6.          echo.)))
  7. pause>nul
复制代码

评分

参与人数 1PB +1 收起 理由
wxcute + 1 不错。

查看全部评分

发表于 2009-2-17 16:43:31 | 显示全部楼层
学习了,感觉不错
发表于 2009-2-17 21:00:54 | 显示全部楼层
有没有更简单的题啊``我超级新手
看了教学贴后还是很困难啊``
发表于 2009-2-22 12:30:54 | 显示全部楼层
非常不理解,希望楼主照顾一下新人,解说一下
还有,为什么一定要文本输出才能完整的显示出结果?
若不输出文本而直接echo的话却只能从中途开始显示至到999 ??
想不通!
发表于 2009-5-8 23:59:55 | 显示全部楼层

我来试试

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1 1 999) do set b=00%%a&echo !b:~-3!
  3. pause>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
jinzeyu + 1 应该是首个新方法

查看全部评分

发表于 2009-5-9 00:03:09 | 显示全部楼层

回复 2楼 9楼 24楼 25楼 的帖子

9楼 24楼 25楼的代码会产生000这个数,跟题意出入!只要把最后一个for的(0 1 9)改成(1 1 9)即可!
2楼也会产生000这个数,只要把1000改成1001即可。

看了后面一些网友的帖子,原来“只要把最后一个for的(0 1 9)改成(1 1 9)即可!”这样也是不行的!!

[ 本帖最后由 sjzong 于 2009-5-10 16:47 编辑 ]

评分

参与人数 1PB +2 收起 理由
wxcute + 2 谢谢指正,但(0 1 9)改成(1 1 9)仍是有 ...

查看全部评分

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

本版积分规则

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

GMT+8, 2026-3-16 22:43 , Processed in 0.022438 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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