[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原帖由 firewolf85 于 2008-12-6 14:00 发表
请教echo %%var:~-3%%中的:~-3怎么讲,是否是显示为3位?


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

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

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

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

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

评分人数

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

TOP

最容易看明白的
  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

回复 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 编辑 ]
1

评分人数

    • wxcute: 谢谢指正,但(0 1 9)改成(1 1 9)仍是有 ...PB + 2

TOP

我来试试

  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

评分人数

    • jinzeyu: 应该是首个新方法技术 + 1

TOP

非常不理解,希望楼主照顾一下新人,解说一下
还有,为什么一定要文本输出才能完整的显示出结果?
若不输出文本而直接echo的话却只能从中途开始显示至到999 ??
想不通!
(*^__^*)

TOP

有没有更简单的题啊``我超级新手
看了教学贴后还是很困难啊``

TOP

学习了,感觉不错

TOP

我来试下

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

评分人数

TOP

@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

可以吧?
1

评分人数

TOP

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

TOP

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

@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
)
setlocal enabledelayedexpansion

TOP

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

TOP

返回列表