[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. for /l %%a in (1,1,100) do echo %%a
  3. pause>nul
  4. @echo off
  5. for /l %%a in (1,2,99) do echo %%a
  6. pause>nul
  7. @echo off
  8. for /f  "tokens=1,2,3 delims=. " %%a in ("bbs bathome.net") do (
  9. echo %%a
  10. echo %%b
  11. echo %%c
  12. )
  13. pause>nul
  14. @echo off
  15. for /f "tokens=1,2,3" %%i in (test.txt) do echo %%i %%j %%k
  16. pause>nul
  17. @echo off
  18. for /f "tokens=2 delims= " %%a in (test.txt) do (
  19. echo %%a
  20. )
  21. pause>nul
复制代码
1

评分人数

宝贵的光阴,总是像箭一样地飞逝着。

TOP

1
  1. @echo off
  2. for /l %%a in (1,1,100) do echo %%a
复制代码
2
  1. @echo off
  2. for /l %%a in (1,2,100) do echo %%a
复制代码
3
  1. @echo off
  2. for /f "delims=. tokens=1-3" %%a in ("bbs bathome.net") do echo %%a %%b %%c
复制代码
1

评分人数

TOP

第一套题目
  1. ::1、批处理运行窗口显示1~100 这100 个数字;
  2. ::2、批处理运行窗口显示 1、3、5.....99这50个数字;
  3. ::3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
  4. ::4、先将以下内容保存到F:\test.txt
  5. ::1      2        3
  6. ::4      5        6
  7. ::7      8        9
  8. ::①将f:\test.txt内容全部显示在批处理窗口;
  9. ::②只显示 2      5        8显示在批处理窗口(分三行显示,每字一行)
  10. @echo off
  11. rem 1、批处理运行窗口显示1~100 这100 个数字;
  12. echo 1、显示1-100的数字:
  13. pause>nul
  14. for /l %%i in (1,1,100) do echo %%i
  15. pause
  16. rem 2、批处理运行窗口显示 1、3、5.....99这50个数字;
  17. echo 2、显示1、3、5.....99这50个数字:
  18. pause>nul
  19. for /l %%i in (1,2,100) do echo %%i
  20. pause
  21. rem 3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
  22. echo 3、bbs bathome.net (在同一行)分成三行显示
  23. pause>nul
  24. for /f "tokens=1-3 delims=. " %%i in ("bbs bathome.net") do (echo %%i)&(echo %%j)&(echo %%k)
  25. pause
  26. rem 4、显示test.txt全部内容到界面,显示2 5 8到界面
  27. echo 4.1、显示test.txt全部内容到界面
  28. pause>nul
  29. for /f "delims=" %%i in (E:\Sync115\bathome\tmp\test1.txt) do echo %%i
  30. pause
  31. echo 4.2、只显示2 5 8到界面
  32. pause>nul
  33. for /f "tokens=2" %%i in (E:\Sync115\bathome\tmp\test1.txt) do echo %%i
  34. pause
复制代码
1

评分人数

TOP

  1. ::分行显示李白的古诗《静夜思》:“床前明月光   疑是地上霜   举头望明月   低头思故乡”
  2. @echo off
  3. for /f "tokens=1-4" %%i in ("床前明月光   疑是地上霜   举头望明月   低头思故乡") do (
  4. echo %%i
  5. echo %%j
  6. echo %%k
  7. echo %%l
  8. )
  9. pause
复制代码

TOP

  1. ::搜索系统盘(如C:\)下包含字符“mplayer”的所有文件(系统播放器),并分别显示路径名、文件名和后缀名。
  2. @echo off
  3. echo ************ for /r searching
  4. echo ************ Searching files with string "mplayer" in disk C:
  5. for /r c:\ %%i in (*mplayer*) do echo %%i
  6. echo.&echo.
  7. echo ************ for /f searching
  8. echo ************ Searching files with string "mplayer" in disk C:
  9. for /f "delims=" %%i in ('dir /a /b /s c:\*mplayer*') do echo %%i
  10. pause
复制代码

TOP

  1. ::显示递减数列:100、98、96、……、4、2、0,并求和。
  2. @echo off&setlocal enabledelayedexpansion
  3. echo ====== NUMBER 100 -- 1 =======
  4. rem 用count计数,每10个数输出一行
  5. set count=0
  6. set sum=0
  7. for /l %%i in (100, -1, 1) do (
  8. set /a count+=1
  9. set /a sum+=%%i
  10. if !count!==1 (
  11. set line=%%i
  12. ) else (
  13. set line=!line! %%i
  14. )
  15. if !count!==10 (
  16. echo !line!
  17. set count=0
  18. )
  19. )
  20. echo.
  21. echo The sum of 100 to 1 is %sum%
  22. pause
复制代码

TOP

  1. ::从句子中提取“荡妇大游行”这个词:“穿了裙子,不等于说可以。”加拿大警察的“如果不想被强奸,就不要把自己打扮得像荡妇”
  2. ::言论引发了世界性的抗议。7月31日,继加拿大、美国、英国、澳大利亚、巴西、荷兰、韩国之后,印度新德里也举行了“荡妇大游行”。
  3. @echo off
  4. for /f "delims=“” tokens=5" %%i in ("“穿了裙子,不等于说可以。”加拿大警察的“如果不想被强奸,就不要把自己打扮得像荡妇”言论引发了世界性的抗议。7月31日,继加拿大、美国、英国、澳大利亚、巴西、荷兰、韩国之后,印度新德里也举行了“荡妇大游行”") do (
  5. echo %%i
  6. )
  7. pause
复制代码

TOP

  1. ::由“ipconfig”命令获得网络配置信息,请提取 IP 地址“192.168.1.100”。也可将以下内容保存为文本进行。
  2. ::Ethernet adapter 本地连接:
  3. ::        
  4. :: Connection-specific DNS Suffix  . :
  5. ::      
  6. :: IP Address. . . . . . . . . . . . : 192.168.1.100
  7. ::        
  8. :: Subnet Mask . . . . . . . . . . . : 255.255.255.0
  9. ::      
  10. :: Default Gateway . . . . . . . . . : 192.168.1.1
  11. ::
  12. ::由ipconfig命令获得以上网络配置信息,请提取 IP 地址。
  13. @echo off&setlocal enabledelayedexpansion
  14. set count=0
  15. for /f "skip=2 tokens=15" %%i in (ipconfig.txt) do (
  16. set /a count+=1
  17. if !count!==1 echo %%i
  18. )
  19. pause
复制代码

TOP

  1. ::有一文本123.txt,内容如下:
  2. ::3 4 5 6 7 9 9 9 10 10
  3. ::请用批处理表示以上数字的关系:将类似“3、4、5、6、7”递增关系的数字组合设为“顺子”;
  4. ::将类似“9、9、9、10、10”由三个相同的数字与另外两个相同的数字组成的数字关系设为“三带二”。
  5. ::可以用后面这组数字加以验证你的代码:3、3、4、4、4、5、6、7、7、7、7。
  6. @echo off&setlocal enabledelayedexpansion
  7. echo ** 请输入10个数字,以空格分隔:
  8. echo ** 数字间的格式为:一个递增的5顺+3个相同数字+2个相同数字
  9. echo ** 形如:3 4 5 6 7 9 9 9 10 10
  10. :begin
  11. echo.
  12. echo =========================================================
  13. set /p s=请输入:
  14. for /f "tokens=1-11" %%i in ("%s%") do (
  15. set a0=%%i
  16. set a1=%%j
  17. set a2=%%k
  18. set a3=%%l
  19. set a4=%%m
  20. set a5=%%n
  21. set a6=%%o
  22. set a7=%%p
  23. set a8=%%q
  24. set a9=%%r
  25. set b0=%%s
  26. rem 检查参数个数
  27. call :countNumber !a0! !a1! !a2! !a3! !a4! !a5! !a6! !a7! !a8! !a9! !b0!  
  28. if not !count!==10 (
  29. echo 格式错误:输入个数不对,请重新输入!
  30. goto :begin
  31. ) else (
  32. rem 检查参数是否都是数字
  33. call :checkNumber !a0! !a1! !a2! !a3! !a4! !a5! !a6! !a7! !a8! !a9!
  34. if not !allNumberFlag!==true (
  35. echo 格式错误:存在非数字,请重新输入!
  36. goto :begin
  37. ) else (
  38. rem 检查前五个数字是否是顺子
  39. set /a tmp1=!a0!+1
  40. set /a tmp2=!a1!+1
  41. set /a tmp3=!a2!+1
  42. set /a tmp4=!a3!+1
  43. set flag1=false
  44. if !tmp1!==!a1! (
  45. if !tmp2!==!a2! (
  46. if !tmp3!==!a3! (
  47. if !tmp4!==!a4! (
  48. set flag1=true
  49. )
  50. )
  51. )
  52. )
  53. if not !flag1!==true (
  54. echo 格式错误: 前五个数字不是顺子
  55. ) else (
  56. rem 检查第 6、7、8个数字是否相等
  57. set flag2=false
  58. if !a5!==!a6! (
  59. if !a6!==!a7! (
  60. set flag2=true
  61. )
  62. )
  63. if not !flag2!==true (
  64. echo 格式错误: 第6、7、8个数字不相等
  65. ) else (
  66. rem 检查第 9、10个数字是否相等
  67. if not !a8!==!a9! (
  68. echo 格式错误: 第9、10个数字不相等
  69. ) else (
  70. echo 输入正确!
  71. )
  72. )
  73. )
  74. )
  75. )
  76. )
  77. rem 是否重来?
  78. echo.
  79. set /p redo=是否重来? (y or n)
  80. if /i "%redo%"=="y" goto :begin
  81. echo 请按任意键退出...
  82. pause>nul
  83. goto :eof
  84. rem 定义函数:判断输入数字的个数
  85. :countNumber
  86. set count=0
  87. :loop1
  88. if not "%1"=="" (
  89. set /a count+=1
  90. shift
  91. goto :loop1
  92. ) else (
  93. goto :eof
  94. )
  95. rem 定义函数:判断输入的是否都是数字
  96. :checkNumber
  97. set allNumberFlag=true
  98. :loop2
  99. set n=%1
  100. if not "%n%"=="" (
  101. rem 判断是否为数字
  102. for /f "delims=1234567890" %%a in ("%n%@") do if "%%a"=="@" (set isNumber=true) else (set isNumber=false)
  103. ) else (
  104. rem 如果为空,则所有参数都检查过了,退出
  105. goto :eof
  106. )
  107. if %isNumber%==true (
  108. rem 如果是数字,则继续检查下一个参数
  109. shift
  110. goto :loop2
  111. ) else (
  112. rem 如果检查到一个非数字,则退出
  113. set allNumberFlag=false
  114. goto :eof
  115. )
复制代码
1

评分人数

    • cjiabing: 难能可贵,学习认真,继续加油!~PB + 12 技术 + 1

TOP

交第一套答案
1
  1. @echo off
  2. for /l %%i in (1,1,100) do echo %%i
  3. pause
复制代码
2
  1. @echo off
  2. for /l %%i in (1,2,100) do echo %%i
  3. pause
复制代码
3
  1. @echo off
  2. for /l %%i in (1,1,3) do echo bbs bathome.net
  3. pause
复制代码
4-1
  1. @echo off
  2. for /f "delims= tokens=1,2,3" %%i in (f:\test.txt) do echo %%i
  3. pause
复制代码
4-2
  1. @echo off
  2. for /f  "tokens=2" %%i in (f:\test.txt) do echo %%i
  3. pause
复制代码
1

评分人数

TOP

回复 290# xhhivi


    建议安装微软官方的例子把tokens写在delims的前面
1

评分人数

    • cjiabing: 还是建议tokens放在delims的前面。谢谢指点 ...PB + 6

TOP

回复 291# gawk


    我是按坛里教程的顺序写的。。。。。

TOP

回复 292# xhhivi


    论坛的教程也是人写的,不能盲从,要批判。

TOP

真的是非常不错的内容,谢谢了

TOP

第二道 B1题
@echo off
for /f "tokens=1,2,3,4 delims= " %%i  in (1.txt) do (echo %%i &echo %%j &echo %%k &echo %%l)
pause>nul

TOP

返回列表