找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: youxi01

批处理for命令应用入门与进阶训练(2011年8月3日更新)

[复制链接]
发表于 2012-9-5 11:57:28 | 显示全部楼层
B2题
  1. @echo
  2. for /r c:/ %%i in (*mplayer*.*) do echo %%i
  3. pause
复制代码
发表于 2012-9-5 17:14:07 | 显示全部楼层
回复 272# aber02zzl
为了帮你评阅特意重新阅读了题目,有两个小问题需要指出!~

答案2命令写错了。
for /l %%a in (1 2 100) de echo %%a

答案3
for /f "tokens=1-3 delims=. " %%a in ("bbs bathome.net") do echo %%a&echo %%b&echo %%c
存在问题:
第一是处理字符串要用双引号;第二是输出变量要与tokens指定的数目一致,你指定了 1-3 个输出变量,那后面就要用 1-3 个输出变量。
发表于 2012-9-5 17:17:52 | 显示全部楼层
回复 277# andy七少

for /f "tokens=1,2,3,4"  %%a   in (test.txt) do (

    注意命令书写规范!~另外,tokens=1-4 会显得更加减缩。
发表于 2012-9-5 17:30:25 | 显示全部楼层
回复 284# 几维kiwi

——::搜索系统盘(如C:\)下包含字符“mplayer”的所有文件(系统播放器),并分别显示路径名、文件名和后缀名。
    for /r c:\ %%i in (*mplayer*) do echo %%i  %%~ni   %%~xi
——要善于利用扩充变量:
     %~pI        - 仅将 %I 扩充到一个路径
     %~nI        - 仅将 %I 扩充到一个文件名
     %~xI        - 仅将 %I 扩充到一个文件扩展名
     ……
发表于 2012-9-5 17:42:42 | 显示全部楼层
回复 285# 几维kiwi

    注意审题:::显示递减数列:100、98、96、……、4、2、0,并求和。
发表于 2012-12-13 00:41:25 | 显示全部楼层

  1. @echo off

  2. ::1、批处理运行窗口显示1~100 这100 个数字;
  3. for /l %%i in (1,1,100) do echo %%i

  4. ::2、批处理运行窗口显示 1、3、5.....99这50个数字;
  5. for /l %%i in (1,2,100) do echo %%i

  6. ::3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
  7. set str="bbs bathome.net"
  8. for /f %%i in (%str%) do echo %%i
  9. for /f "tokens=2" %%i in (%str%) do (
  10.         set tmp="%%i"
  11.         for /f "delims=. tokens=1,2" %%a in (%tmp%) do echo %%a&echo %%b
  12. )

  13. ::4、先将以下内容保存到F:\test.txt
  14. :: 1      2        3
  15. :: 4      5        6
  16. :: 7      8        9
  17. ::①将f:\test.txt内容全部显示在批处理窗口;
  18. ::②只显示 2      5        8显示在批处理窗口(分三行显示,每字一行)

  19. set "L1=1      2        3"
  20. set "L2=4      5        6"
  21. set "L3=7      8        9"
  22. set "txtFile=E:\test.txt"
  23. echo %L1% > %txtFile%
  24. echo %L2% >> %txtFile%
  25. echo %L3% >> %txtFile%
  26. for /f "tokens=*" %%i in (%txtFile%) do echo %%i
  27. for /f "tokens=2" %%i in (%txtFile%) do echo %%i

  28. pause
  29. exit /b 0
复制代码
发表于 2013-1-10 00:32:04 | 显示全部楼层
终于把第三题写成是三行了

  1. @echo off
  2. set str=bbs bathome.net
  3. set str1=%str:.= %
  4. for  %%i in (%str1%) do echo %%i  
  5. pause>nul
复制代码
发表于 2013-8-3 19:13:12 | 显示全部楼层
第三题
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set var=bbs bathome.net
  4. echo %var%
  5. for /f "tokens=1,2" %%a in ("%var%") do (echo %%a
  6. for /f "delims=. tokens=1,2" %%c in ("%%b") do (echo %%c
  7. echo %%d
  8. )
  9. )
  10. pause
复制代码
发表于 2014-6-22 15:16:35 | 显示全部楼层
本帖最后由 zh_1452 于 2014-6-22 16:10 编辑
  1. @echo off
  2. type nul>e:\test.txt
  3. set /p str=123456789>e:\test.txt
  4. for %%i in (123.456.789) do echo %%i
  5. pause
  6. @echo off
  7. for %%i in (123,456,789) do echo %%i
  8. pause
  9. @echo off
  10. type nul>test.txt
  11. set /p str=258>e:\test.txt
  12. for %%i in (2,5,8) do echo %%i
  13. pause
  14. @echo off
  15. type nul>e:\test.txt
  16. set /p str=床前明月光,疑是地上霜,举头望明月,低头思故乡>e:\test.txt
  17. for %%i in (床前明月光,疑是地上霜,举头望明月,低头思故乡) do echo %%i
  18. pause
  19. @echo off
  20. cd..\..
  21. cd /d c:\.&attrib *.txt
  22. find /i "mplayer" c:\windows\system32\*.txt
  23. pause
  24. @echo off
  25. type nul>123.txt
  26. set /p str=3,4,5,6,7,9,9,9,10,10,>c:\program files\123.txt
  27. for %%i in (3,4,5,6,7,9,9,9,10,10,) do echo %%i
  28. pause
  29. @echo off
  30. set /p var=顺子
  31. set /p str=3,4,5,6,
  32. if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为3,4,5,6,)
  33. if defined var (echo 变量var已经被赋值,其值为%var%) else (echo 变量var的值为顺子)
  34. pause
  35. @echo off
  36. set /p var=三带二
  37. set /p str=9,9,9,10,10,
  38. if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为9,9,9,10,10,)
  39. if defined var (echo 变量var已经被赋值,其值为%var%) else (echo 变量var的值为三带二)
  40. pause


复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2014-8-5 12:58:25 | 显示全部楼层
第一套

  1. Rem 1.
  2. @Echo off
  3. For /l %%i in (1 1 100) Do Echo %%i
  4. Pause>nul
  5. Rem 2.
  6. For /l %%i In (1 2 99) Do Echo %%i
  7. Pause>nul
  8. Rem 3.
  9. Set var=bbs bathome.net
  10. For %%i In (%var:.= %) Do Echo %%i
  11. Pause>nul
  12. Rem 4.
  13. (
  14.         Echo 1      2        3
  15.         Echo 4      5        6
  16.         Echo 7      8        9
  17. )>>F:\test.txt
  18. Type F:\test.txt
  19. For /f "tokens=2" %%i In (F:\test.txt) Do Echo %%i
  20. Pause>nul
复制代码
发表于 2014-8-5 13:20:35 | 显示全部楼层
第二套
B1

  1. @For %%i In (床前明月光   疑是地上霜   举头望明月   低头思故乡) Do @Echo %%i
复制代码
B2

  1. @Echo off
  2. For /R C:\ %%i In (*mplayer*.*) Do (
  3.         Echo %%~fi
  4.         Echo %%~ni %%~xi
  5. )
  6. Pause>nul
复制代码
B3

  1. @Echo off
  2. For /l %%i in (100 -2 0) Do (
  3.         Echo %%i
  4.         Set /a Num+=%%i
  5. )
  6. Echo %Num%
  7. Pause>nul
复制代码
B4

  1. @Echo off
  2. Set Str=“穿了裙子,不等于说可以。”加拿大**的“如果不想被强奸,就不要把自己打扮得像**”言论引发了世界性的**。7月31日,继加拿大、美国、英国、澳大利亚、巴西、荷兰、韩国之后,印度新德里也举行了“**大**”。
  3. For /F "delims=“,” tokens=5" %%i In ("%Str%") Do Echo %%i
  4. Pause>nul
复制代码
B5

  1. @Echo off
  2. For /F "Skip=7 Delims=: Tokens=2" %%i In ('ipconfig') Do (
  3.         Echo%%i
  4.         Pause>nul
  5. )
复制代码
发表于 2014-9-14 12:28:39 | 显示全部楼层
@echo off
Rem:        、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
setlocal enabledelayedexpansion
for %%i in (bbs bathome.net) do (
set str=%%i && for /f "delims=. tokens=1,2" %%j in ("!str!") do echo %%j
)
pause
为什么最后显示是
bbs
bathome
发表于 2014-9-14 12:29:24 | 显示全部楼层
  1. @echo off
  2. Rem:        、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
  3. setlocal enabledelayedexpansion
  4. for %%i in (bbs bathome.net) do (
  5. set str=%%i && for /f "delims=. tokens=1,2" %%j in ("!str!") do echo %%j
  6. )
  7. pause
复制代码
为什么最后显示是
bbs
bathome
而没有.net
发表于 2014-9-14 12:31:35 | 显示全部楼层
回复 301# deng1d2l


    但最后那个.呢?
发表于 2014-9-14 16:25:08 | 显示全部楼层
回复 301# deng1d2l


    我懂了,上午犯二了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:44 , Processed in 0.022876 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表