[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
最容易看明白的
  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 编辑 ]
1

评分人数

    • wxcute: 不错,更简洁的参考前面逆向截取的。PB + 2

TOP

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

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

评分人数

    • wxcute: 系统不会因为你加了两个零面显示的,测试下 ...PB + 1

TOP

原帖由 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,怎么解决?

TOP

原帖由 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
1

评分人数

    • wxcute: 谢谢指正,如你所说。PB + 2

TOP

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


- 表示倒数
3 表示3位数
合起来表示显示倒数3位数

TOP

原帖由 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
1

评分人数

    • sjzong: 谢谢指正,我已经修改回复贴了!!PB + 2

TOP

各有千秋.......

TOP

我用的ctrl+a直接全部显示的。

TOP

如果要生成01-100个文件夹可以不?

TOP

看到还有"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 编辑 ]
1

评分人数

TOP

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

TOP

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

TOP

哎,38楼竟然有人写了!!老版快出题目,我要第一个给出答案!

TOP

不知道 题目要求的是随机产生一个三位以内的数字还是 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 编辑 ]

TOP

各位高手给点建议:
我的代码是:
  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%,我发现我无法截取

TOP

返回列表