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

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

[复制链接]
发表于 2009-5-9 00:17:13 | 显示全部楼层
最容易看明白的
  1. @echo off
  2. for /l %%a in (1,1,999) do (
  3. if %%a lss 10 (echo 00%%a) else if %%a lss 100 (echo 0%%a) else echo %%a
  4. )>>a.txt
  5. start a.txt
复制代码

[ 本帖最后由 inittab 于 2009-5-9 00:19 编辑 ]

评分

参与人数 1PB +2 收起 理由
wxcute + 2 不错,更简洁的参考前面逆向截取的。

查看全部评分

发表于 2009-5-9 06:22:49 | 显示全部楼层
for /L %%i in (001,001,999) do echo %%i
pause>nul

[ 本帖最后由 canyuexiaolang 于 2009-5-9 06:24 编辑 ]

评分

参与人数 1PB +1 收起 理由
wxcute + 1 系统不会因为你加了两个零面显示的,测试下 ...

查看全部评分

发表于 2009-5-9 13:11:41 | 显示全部楼层
原帖由 wangwei4106 于 2008-9-1 19:03 发表
我要感谢斑竹他们!
呵呵
我又来了!@echo off
for /l %%i in (0 1 9) do (
   for /l %%j in (0 1 9) do (
      for /l %%k in (0 1 9) do (
  set/p=%%i%%j%%k nul



这样会在第一行产生000,怎么解决?
发表于 2009-5-9 13:14:32 | 显示全部楼层
原帖由 novaa 于 2008-1-7 19:23 发表

@echo off&setlocal enabledelayedexpansion
for /l %%i in (1000 1 1999) do (
set var=%%i
echo !var:~1!>>aaa.txt
)
pause


应该把1000改为1001,否则会在第一行产生000

评分

参与人数 1PB +2 收起 理由
wxcute + 2 谢谢指正,如你所说。

查看全部评分

发表于 2009-5-9 13:21:14 | 显示全部楼层
原帖由 firewolf85 于 2008-12-6 14:00 发表
请教echo %%var:~-3%%中的:~-3怎么讲,是否是显示为3位?


- 表示倒数
3 表示3位数
合起来表示显示倒数3位数
发表于 2009-5-9 13:25:02 | 显示全部楼层
原帖由 sjzong 于 2009-5-9 00:03 发表
9楼 24楼 25楼的代码会产生000这个数,跟题意出入!只要把最后一个for的(0 1 9)改成(1 1 9)即可
2楼也会产生000这个数,只要把1000改成1001即可。



误解!!!!

如果那样的话会使个位数没有0,比如:
.....
009
这里缺了010
011
.....
109
这里缺了110
111

评分

参与人数 1PB +2 收起 理由
sjzong + 2 谢谢指正,我已经修改回复贴了!!

查看全部评分

发表于 2009-5-9 16:13:27 | 显示全部楼层
各有千秋.......
发表于 2009-7-27 15:45:28 | 显示全部楼层
我用的ctrl+a直接全部显示的。
发表于 2009-7-29 20:01:31 | 显示全部楼层
如果要生成01-100个文件夹可以不?
发表于 2009-8-5 18:19:11 | 显示全部楼层
看到还有"000"这样的问题,所以再修一下
  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.          if %%i%%j%%k==000 (echo %%i%%j%%k>nul) else echo %%i%%j%%k)
  6.          )
  7.          )
  8. pause>nul
复制代码

[ 本帖最后由 nopr 于 2009-8-5 18:31 编辑 ]

评分

参与人数 1PB +2 收起 理由
wxcute + 2 加分鼓励下.

查看全部评分

发表于 2009-8-9 18:52:49 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion
(for /l %%i in (1001 1 1999) do set avr=%%i&echo !avr:~-3!)>1.txt
pause>nul
发表于 2009-8-15 16:42:39 | 显示全部楼层
笨办法总是有效的,看看这个:
  1. @echo off
  2. for /l %%a in (1,1,9) do echo 00%%a
  3. for /l %%b in (10,1,99) do echo 0%%b
  4. for /l %%c in (100,1,999) do echo %%c
  5. pause
复制代码
发表于 2009-8-15 16:46:50 | 显示全部楼层
哎,38楼竟然有人写了!!老版快出题目,我要第一个给出答案!
发表于 2009-8-25 21:35:29 | 显示全部楼层
不知道 题目要求的是随机产生一个三位以内的数字还是 1-999 逐个产生
如果是 随即产生 可以用 SET /A R=%RANDOM:~0,3%
如果逐一产生,可以用FOR /L

利用 SETLOCAL ENABLEDELAYEDEXPANSION 实现FOR循环内部的变量设置。


@ECHO OFF
FOR /L %%C IN (1,1,999) DO (
SETLOCAL ENABLEDELAYEDEXPANSION
SET /A X=%%C >NUL
IF %%C LSS 100 SET X=0!X! >NUL
IF %%C LSS 10 SET X=0!X! >NUL
ECHO !X!
ENDLOCAL
)
:END

[ 本帖最后由 DXSX 于 2009-8-25 22:23 编辑 ]
发表于 2009-8-26 09:38:59 | 显示全部楼层
各位高手给点建议:
我的代码是:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (1,1,100) do (
  3.     set str=%%a
  4.     set str=00!str!
  5.     set str=%!str!:~-3%
  6.     echo %!str!%)
  7. pause
复制代码
我的代码这句set str=%!str!:~-3%,我发现我无法截取
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 23:17 , Processed in 0.016273 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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