Board logo

标题: 批处理产生001到999之间的数字 [打印本页]

作者: novaa    时间: 2008-1-7 19:19     标题: 批处理产生001到999之间的数字

如下
001
002
003
...
999
作者: novaa    时间: 2008-1-7 19:23

  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1001 1 1999) do (
  3. set var=%%i
  4. echo !var:~1!>>aaa.txt
  5. )
  6. pause
复制代码


[ 本帖最后由 wxcute 于 2009-5-10 10:26 编辑 ]
作者: 随风    时间: 2008-1-7 19:28

代码内容,设置的颜色为white,防止答案轻易泄露
显示方法 1:按住鼠标左键,框住代码即可。
显示方法 2:点击代码右上角的“复制内容到剪贴板”也可。

方法一、
  1. @echo off
  2. set var=1000
  3. :loop
  4. set /a var+=1
  5. echo %var:~-3%
  6. if %var% neq 1999 goto loop
  7. pause
复制代码
方法二、
  1. @echo off
  2. for /l %%i in (1001 1 1999) do (
  3.   set var=%%i
  4.   call echo %%var:~-3%%
  5. )
  6. pause
复制代码
高亮(反选)显示代码

[ 本帖最后由 随风 于 2008-1-7 20:06 编辑 ]
作者: youxi01    时间: 2008-1-7 19:29

这个代码隐藏方法好啊
不过,最好在前面提示 一下 新手通过怎么样的方式显示 那些代码,呵呵,人性化一点
作者: novaa    时间: 2008-1-7 19:40

点击右上角的   复制内容到剪贴板代码: 就可以看到代码了
呵呵。
作者: h0037126    时间: 2008-4-1 08:59

学习!! 看不懂,希望再出新的教材和习题,支持!!
作者: pengyou86    时间: 2008-8-6 08:34

谢谢,正需要这个代码的
作者: onebat    时间: 2008-8-8 00:50

为什么我的显示从701开始...
作者: wangwei4106    时间: 2008-9-1 19:03

我要感谢斑竹他们!
呵呵
我又来了!
  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.     )
  7.   )
  8. )
  9. pause>nul
复制代码

作者: z_berry    时间: 2008-9-2 16:57

这个不会唉
作者: itrui    时间: 2008-9-2 18:00

所有帖子都要回帖才能看吗,怎么搞的。论坛改革了?
作者: jellyhk    时间: 2008-9-3 21:43     标题: for

for命令不是能么。
<code>
for -l %%i in (001 001 200) do echo %%i
pause
</code>
作者: wxcute    时间: 2008-9-15 20:10

  1. @echo off
  2. cd.>num.txt
  3. for /l %%n in (1001,1,1999) do (
  4.  call :num n %%n
  5. )
  6. start num.txt
  7. goto :eof
  8. :num
  9.  set %1=%2
  10.  echo %n:~-3%>>num.txt
复制代码
两个差不多
  1. @echo off
  2. cd.>num.txt
  3. for /l %%n in (1,1,999) do (
  4.  call :num n %%n
  5. )
  6. start num.txt
  7. goto :eof
  8. :num
  9.  set %1=00%2
  10.  echo %n:~-3%>>num.txt
复制代码

作者: lhzyzs    时间: 2008-10-18 18:52     标题: 回复 3楼 的帖子

-3是什么意思呀 哎 不明白呀
作者: xiehoujiangnan    时间: 2008-10-25 14:37     标题: 学习中

我是新手,来这里学习的。看了几贴,学习了
作者: firewolf85    时间: 2008-12-6 13:55

  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
复制代码

作者: firewolf85    时间: 2008-12-6 14:00

请教
  1. echo %%var:~-3%%
复制代码
中的:~-3怎么讲,是否是显示为3位?
作者: hidden    时间: 2009-1-12 23:15

@echo off
for /l %%f in (001 1 999) do echo %%f
pause>nul
作者: p05401144    时间: 2009-1-14 10:36

@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
作者: honey    时间: 2009-1-15 12:43

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

其实选定就好了
作者: skuny    时间: 2009-1-15 14:49

  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
复制代码

作者: denev2004    时间: 2009-2-3 17:52

还是斑竹高手啊,我的方法太麻烦了

@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
)
作者: kingerpk    时间: 2009-2-6 23:15

我来试试:
  1. @echo off
  2. for /l %%a in (001,1,999) do set /p=%%a < nul
  3. pause
复制代码

作者: zhangenming    时间: 2009-2-7 16:49

@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

可以吧?
作者: irresolute    时间: 2009-2-16 10:00     标题: 我来试下

  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
复制代码

作者: aregui    时间: 2009-2-17 16:43

学习了,感觉不错
作者: syl0o0o    时间: 2009-2-17 21:00

有没有更简单的题啊``我超级新手
看了教学贴后还是很困难啊``
作者: TonyW    时间: 2009-2-22 12:30

非常不理解,希望楼主照顾一下新人,解说一下
还有,为什么一定要文本输出才能完整的显示出结果?
若不输出文本而直接echo的话却只能从中途开始显示至到999 ??
想不通!
作者: sjzong    时间: 2009-5-8 23:59     标题: 我来试试

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

作者: sjzong    时间: 2009-5-9 00:03     标题: 回复 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 编辑 ]
作者: inittab    时间: 2009-5-9 00:17

最容易看明白的
  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 编辑 ]
作者: canyuexiaolang    时间: 2009-5-9 06:22

for /L %%i in (001,001,999) do echo %%i
pause>nul

[ 本帖最后由 canyuexiaolang 于 2009-5-9 06:24 编辑 ]
作者: wangshuping42    时间: 2009-5-9 13:11

原帖由 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,怎么解决?
作者: wangshuping42    时间: 2009-5-9 13:14

原帖由 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
作者: wangshuping42    时间: 2009-5-9 13:21

原帖由 firewolf85 于 2008-12-6 14:00 发表
请教echo %%var:~-3%%中的:~-3怎么讲,是否是显示为3位?


- 表示倒数
3 表示3位数
合起来表示显示倒数3位数
作者: wangshuping42    时间: 2009-5-9 13:25

原帖由 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
作者: aizzw    时间: 2009-5-9 16:13

各有千秋.......
作者: q625805390    时间: 2009-7-27 15:45

我用的ctrl+a直接全部显示的。
作者: zjw1987_51    时间: 2009-7-29 20:01

如果要生成01-100个文件夹可以不?
作者: nopr    时间: 2009-8-5 18:19

看到还有"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 编辑 ]
作者: hs4814    时间: 2009-8-9 18:52

@echo off
setlocal enabledelayedexpansion
(for /l %%i in (1001 1 1999) do set avr=%%i&echo !avr:~-3!)>1.txt
pause>nul
作者: kevinpeng    时间: 2009-8-15 16:42

笨办法总是有效的,看看这个:
  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
复制代码

作者: kevinpeng    时间: 2009-8-15 16:46

哎,38楼竟然有人写了!!老版快出题目,我要第一个给出答案!
作者: DXSX    时间: 2009-8-25 21:35

不知道 题目要求的是随机产生一个三位以内的数字还是 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 编辑 ]
作者: cs19860814    时间: 2009-8-26 09:38

各位高手给点建议:
我的代码是:
  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%,我发现我无法截取
作者: DXSX    时间: 2009-8-26 10:57

set str=%!str!:~-3% 换成
set str=!str:~-3! 看看
作者: zhang19881028    时间: 2009-10-27 14:04     标题: 大家帮我看看这个是什么意思

@echo off
for /l %%i in (1 1 12) do (
   for /l %%j in (1 1 10) do (
      
  ping /n 1 192.168.%%i.%%j
    )
  )

pause>nul
作者: pumahxh    时间: 2009-11-10 19:37     标题: 回复 1楼 的帖子

  1. @echo off&cls
  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 neq 000  echo.%%i%%j%%k
  6.             ping -n 2 127.1>nul
  7.             cls
  8.         )
  9.     )
  10. )
  11. pause>nul
复制代码

作者: cryfordog    时间: 2009-11-11 00:51

  1. @echo off
  2. for /l %%i in (1,1,999) do (
  3. if %%i leq 9 (echo 00%%i>>a.txt) else (if %%i leq 99 (echo 0%%i>>a.txt) else (echo %%i>>a.txt)))
  4. pause
复制代码

作者: ipconfig    时间: 2009-11-11 21:56     标题: 回复 28楼 的帖子

大概是屏幕窗口限制!因为从1到100就是完整的
作者: zgq0301    时间: 2009-11-12 09:12

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for  %%a in (0,1,2,3,4,5,6,7,8,9) do (
  4.    
  5.     for  %%b in (0,1,2,3,4,5,6,7,8,9) do (
  6.       
  7.          for  %%c in (0,1,2,3,4,5,6,7,8,9) do (
  8.            echo %%a%%b%%c
  9.    )
  10.    )
  11.     )
  12. pause
复制代码

作者: vh211001    时间: 2009-12-3 16:17

新手 来学习下
刚试了试 还是不行.努力中
作者: x576380361    时间: 2009-12-6 19:58

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1001 1 1999) do (
  4. set a=%%i
  5. echo !a:~1,3!
  6. )
  7. pause>nul
复制代码

[ 本帖最后由 x576380361 于 2009-12-8 22:38 编辑 ]
作者: neorobin    时间: 2009-12-9 00:33

最短的:  (如果没有 edit.exe, 就改 write, 再不然就改 notepad)
  1. cmd /v:on /q /c "del ~&(for /l %%a in (9001,1,9999) do set n=%%a&echo !n:*9=!>>~)&edit ~"
复制代码
长一点的:
  1. cmd /v:on /q /k "mode con lines=1001&(for /l %%a in (9001,1,9999) do set n=%%a&echo !n:*9=!)"
复制代码
再长点的:
  1. echo off&mode con lines=1000&setlocal enabledelayedexpansion&(for /l %%a in (1001,1,1999) do set n=%%a&&echo !n:*1=!)&pause
复制代码

[ 本帖最后由 neorobin 于 2009-12-9 02:16 编辑 ]
作者: kuku2599    时间: 2009-12-9 11:25

我就是不知道怎样才能看到那些代码?
作者: wsjxwj    时间: 2009-12-12 18:41     标题: 太帅了

原帖由 novaa 于 2008-1-7 19:23 发表

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


  


楼主你的方法太帅了,又学到一招,呵呵
作者: lvyaojian    时间: 2009-12-13 21:24

  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 (1,1,9) do echo %%i%%j%%k
  5. )
  6. )
  7. pause
复制代码

作者: poxi    时间: 2010-7-19 21:29

答:
  1. @echo off
  2. :1
  3. set /a js+=1
  4. set mun=%js%
  5. if %js% lss 100 set mun=0%js%
  6. if %js% lss 10 set mun=00%js%
  7. echo %mun%
  8. if "%js%"=="999" goto 2
  9. goto 1
  10. :2
  11. pause
复制代码


===========
end;
作者: guihao    时间: 2010-7-28 15:13

  1. @echo off
  2. for /l %%i in (1,1,999) do (
  3. set var=00%%i
  4. call echo %%var:~1,-3%%>>1.txt
  5. )
  6. 1.txt
复制代码
这个最经典,最简洁

虽然还有一个代码:也蛮简洁的:但是扩展性不好。
  1. for /l %%i in(1,1,9) do echo 00%%i
  2. for /l %%i in(10,1,99) do echo 0%%i
  3. for /l %%i in(100,1,999) do echo %%i
复制代码

作者: wkdxz    时间: 2010-8-5 09:51

  1. @Echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1 1 999) do (
  4. set a=00%%a
  5. set/p =!a:~-3! <nul
  6. )
  7. pause>nul
复制代码

作者: fish    时间: 2010-8-6 17:20     标题: 完了,我把简单问题想复杂了。。。

  1. @echo off
  2. for /l %%i in (001,1,999) do (
  3. if %%i lss 100 (
  4. set /p"=0"<nul
  5. if %%i lss 10 (
  6. set /p"=0"<nul
  7. )
  8. )
  9. echo %%i
  10. )
  11. pause
复制代码

作者: jonm158    时间: 2010-8-16 19:37

新手,开始学习中,谢谢
作者: jixun66    时间: 2010-8-17 15:19

  1. @echo off
  2. set /a a=%a%+1
  3. echo %a%
  4. if %a%==999 pause
  5. %0
复制代码

作者: paladinjin    时间: 2010-8-19 16:06

  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 (1,1,9) do (
  5.          set /p=%%i%%j%%k<nul  
  6. )
  7. )
  8. )
  9. pause>nul
复制代码

作者: leap    时间: 2010-9-6 15:55

  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 neq 000 (echo %%i%%j%%k)
  6. )))>>1.txt
  7. pause
复制代码
修改了楼上用这种方式显示的
应该不会出现000
作者: leap    时间: 2010-9-6 15:57

原帖由 paladinjin 于 2010-8-19 16:06 发表
@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 (
         set /p=%%i%%j%%knul

这种方式各位是0的都不会显示出来
作者: lvsehuaxue    时间: 2010-9-17 15:40     标题:

又学习了一点知识!!
作者: edmond    时间: 2010-9-28 15:14

想出来的都是效率很低的,想知道前面 call echo 是怎么一回事?
别说我啊,我不是灌水来的!
作者: smallpigs    时间: 2010-10-22 13:19     标题: 回复 3楼 的帖子

set /a var+=1
echo %var:~-3%

高手,能解說一下這個是什麽意思嗎,我是新手不太懂!
感覺您的方法最簡單!
作者: smallpigs    时间: 2010-10-26 15:57

  1. @echo off
  2. for /l %%i in (1001 1 1999) do (
  3.   set "var=%%i"
  4.   call echo %%var:~-3%%>>cal.txt
  5.   
  6. )
  7. pause
复制代码

作者: zsllq    时间: 2010-10-26 22:29

为什么按照上面的代码运行显示出来的是701开始的?
作者: skuny    时间: 2010-12-23 15:58

  1. @echo off
  2. for /l %%i in (1 1 999) do (
  3. if %%i lss 10 (echo 00%%i) else (if %%i lss 100 (echo 0%%i) else echo %%i)
  4. )
  5. pause
复制代码

作者: ithinkican    时间: 2010-12-23 21:53

[code]
@echo off
:c
set /a a+=1
set b=0000%a%
del 1.txt
@echo %b:~-3% >>1.txt
if %a% neq 999 goto c
start 1.txt
pause>nul
::xp sp3下测试通过…
[code]
作者: ithinkican    时间: 2010-12-23 21:54

从701开始是因为屏幕无法全部显示…
作者: ithinkican    时间: 2010-12-23 22:08

好内容啁、学习了
作者: 15042808343    时间: 2012-2-8 21:12

新手想发贴子太难 了..
作者: wangxiaodong    时间: 2012-2-24 19:30

回复 23# kingerpk


    for /l %%a in (001,1,999) do set /p=%%a < nul

是什么意思?谢谢!
作者: wangxiaodong    时间: 2012-2-24 19:32

回复 17# firewolf85


    只显示后三位。
作者: wangxiaodong    时间: 2012-2-24 19:41

  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 not "%%i^|^|%%j^|^|%%k"=="0"
  6. echo %%i%%j%%k>>1.txt
  7.     )
  8.   )
  9. )
复制代码
代码那里错了?谢谢!
作者: wangxiaodong    时间: 2012-2-24 19:44

回复 16# firewolf85


    set /a num=%random%%%999+1

是什么意思?谢谢!
作者: QIAOXINGXING    时间: 2012-2-24 19:51

本帖最后由 QIAOXINGXING 于 2012-2-24 20:04 编辑

回复 86# wangxiaodong


   


/a 是指进行数学运算。
%RANDOM% 是系统返回的0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
%% 是 取余 。
所以,num 的值是 1 到 999 的随机数。
作者: cb02356828    时间: 2012-4-9 22:50

  1. 我是新手,来这里学习的。
  2. 这个代码隐藏方法,一个Ctrl+A就全漏了……
复制代码

作者: gawk    时间: 2012-4-9 23:04

回复 88# cb02356828


    人家的目的不是为了隐藏
作者: tmxue    时间: 2012-4-9 23:07

从零开始难啊
作者: gawk    时间: 2012-4-10 00:08

回复 76# zsllq


    你抄的哪段代码?
作者: gawk    时间: 2012-4-10 00:09

回复 90# tmxue


    已经有这么多代码了,随便抄一个,不难。
作者: 秋风·飞扬    时间: 2012-5-6 15:03

回复 17# firewolf85


        取后三个字符
作者: 悬崖之树    时间: 2012-7-11 20:50

大家注意到没有,如果没有设置cmd窗口的行数的话,是不能显示001~999的,而是从701~999
所以要在前面加一句: mode con lines=1000 才行,如
  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. mode con lines=1000
  3. for /l %%i in (1 1 999) do (
  4. set str=00%%i
  5. echo !str:~-3!
  6. )
  7. pause
复制代码

作者: cjiabing    时间: 2012-7-27 09:19

回复 94# 悬崖之树


    不存在这种情况,请重试!~
作者: 539956485    时间: 2012-10-17 18:46

  1. @echo off
  2. SET NUM=001
  3. :MAIN
  4. SET /A NUM+=1
  5. PING 127.1 -N 2 > NUL
  6. call echo %%NUM:~-3%%
  7. IF %NUM%==999 GOTO END
  8. GOTO MAIN
  9. :END
  10. pause & EXIT
复制代码

作者: echozhao    时间: 2012-10-18 08:29

  1. @echo off
  2. set num=000
  3. :c
  4. set /a num+=1
  5. if %num% leq 999 echo %num%&goto c
  6. pause
复制代码

作者: Enterpaise    时间: 2013-1-16 14:52

  1. @echo off & setlocal enabledelayedexpansion
  2. for /L %%i in (1000,1,1999) do (
  3.     set var=%%i
  4.     echo !var:~-3!   
  5. )
  6. pause
复制代码

作者: qq399254368    时间: 2013-5-31 13:48

请问下这个代码错在哪?
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1001,1,1999) do (
set var=%%i
echo !var:~1,3!
)
pause
作者: qq399254368    时间: 2013-5-31 14:09

还有一个问题,这代码如何依次填充显示,如何显示下一个就把前面一个覆盖掉?
就是从0001到999,一个一个的显示在屏幕中?
作者: 狱渊    时间: 2013-7-29 09:48

批处理产生001到999之间的数字
  1. @echo off
  2. for /l %%i in (1,1,999) do (
  3. echo %%i>>1.txt
  4. )
  5. pause
复制代码

作者: Jay罗小尼    时间: 2013-8-5 15:21

  1. @echo off
  2. for /l %%t in (000,001,999) do
  3. (
  4. if %%t lss 10 (echo 00%%t)
  5. else if %%t lss 100 (echo 0%%t)
  6. else echo %%t
  7. )
  8. pause
复制代码
这段代码其实运行不成功。。但是找不到错误在哪?
作者: battab    时间: 2013-12-16 14:44

  1. @echo off
  2. for /l %%i in (1,1,999) do (
  3. set str=%%i
  4. setlocal enabledelayedexpansion
  5. if "!str:~1,1!"=="" set str=00!str!
  6. if "!str:~2,1!"=="" set str=0!str!
  7. echo !str!>>a.txt
  8. endlocal
  9. )
  10. pause>nul
复制代码

作者: battab    时间: 2013-12-16 14:47

  1. @echo off
  2. for /l %%i in (1,1,999) do (
  3. set str=%%i
  4. setlocal enabledelayedexpansion
  5. if "!str:~1,1!"=="" set str=00!str!
  6. if "!str:~2,1!"=="" set str=0!str!
  7. echo !str!&ping -n 1 127.1>nul&cls
  8. endlocal
  9. )
  10. pause>nul
复制代码
回复 99# qq399254368
作者: 1020878754    时间: 2014-2-9 22:23

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1001 1 1999) do (
set abc=%%i
echo !abc:~1!
)
pause
作者: dengyuli    时间: 2014-8-30 20:56

本帖最后由 dengyuli 于 2014-8-30 20:57 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set c=0
  4. :w
  5. set /a c=c+1
  6. if !c! leq 9 set d=00!c! & echo !d! & goto:w
  7. if !c! leq 99 set d=0!c! & echo !d! & goto:w
  8. if !c! lss 999 set d=!c! & echo !d! & goto:w
  9. if !c!==999 set d=!c! & echo !d! & goto:2
  10. goto:1
  11. :2
  12. pause>nul
  13. exit
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2