Board logo

标题: [文件操作] 能否在for /L语句中像数字一样,按序列列出字母呢。 [打印本页]

作者: xu290780142    时间: 2008-10-25 22:38     标题: 能否在for /L语句中像数字一样,按序列列出字母呢。

在for 语句里。
能不能像for /l %%a in (1,1,5) .... 一样的列出字母序列呢。。
  也就是说。。
     给序一个首字母f。按照递增的顺序输出字母,fghijklmno...
作者: batman    时间: 2008-10-25 22:46

直接列出是做不到的,但可以变通下了:
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (a b c d e f g h i j k l m n o p q r s t  u v w x y z) do set /a n+=1&set "_!n!=%%i"
  3. for /l %%i in (10,1,26) do echo !_%%i!
  4. pause>nul
复制代码

作者: xu290780142    时间: 2008-10-25 22:56

嗯。谢啦~~
嘿嘿。。又学到了新知识啦。
作者: zqz0012005    时间: 2008-10-26 00:16

  1. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@echo off
  2. setlocal enabledelayedexpansion
  3. set "letters=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  4. set /p first=请给出首字母:
  5. for /l %%a in (0 1 25) do (
  6.     if not defined flag (if /i "!letters:~%%a,1!"=="%first%" set flag=1&set /p=!letters:~%%a,1! <nul) else set /p=!letters:~%%a,1! <nul
  7. )
  8. echo.&pause
复制代码

作者: xu290780142    时间: 2008-10-26 11:36

原帖由 zqz0012005 于 2008-10-26 00:16 发表
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@echo off
setlocal enabledelayedexpansion
set "letters=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set /p first=请给出首字母:
for /l %%a in (0 1 25) do (
    if not defined flag ...


哇噻。
这个好。
     呵呵。。
作者: terse    时间: 2008-10-26 19:22

  1. @echo off
  2. set /p f=请给出首字母:
  3. for /f "tokens=1* delims=%f%" %%i in (" a b c d e f g h i j k l m n o p q r s t  u v w x y z ") do set "str=%f%%%j"
  4. echo %str: =%
  5. echo.&pause
复制代码

作者: shqf    时间: 2008-10-29 20:04

  1. @echo off
  2. set /p first=请给出首字母:
  3. set letters=abcdefghijklmnopqrstuvwxyz
  4. call echo %%letters:*%first%=%%
  5. pause
复制代码





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