标题: 批处理for命令应用入门与进阶训练(2011年8月3日更新) [打印本页]
作者: youxi01 时间: 2008-1-3 22:24 标题: 批处理for命令应用入门与进阶训练(2011年8月3日更新)
本帖最后由 cjiabing 于 2011-9-25 23:56 编辑
第一套:
为加快新手对for命令的入门,特编制本套"试题"(可以将答案作为回帖)
1、批处理运行窗口显示1~100 这100 个数字;
2、批处理运行窗口显示 1、3、5.....99这50个数字;
3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
4、先将以下内容保存到F:\test.txt复制代码
①将f:\test.txt内容全部显示在批处理窗口;
②只显示 2 5 8显示在批处理窗口(分三行显示,每字一行)
————————————————————————————————————
第二套:(2011年8月3日更新)
目的:针对for命令的入门与进阶的配套练习,以掌握for命令的参数为主,兼以考察新手对FOR的综合应用和对FOR中的变量延迟的了解。
要求:回帖答案请注明是哪道题。不懂变量延迟和多层嵌套的可搜索论坛相关帖子。B7题可以选做,只是用来考察FOR思想。
B1、分行显示李白的古诗《静夜思》:“床前明月光 疑是地上霜 举头望明月 低头思故乡”
B2、搜索系统盘(如C:\)下包含字符“mplayer”的所有文件(系统播放器),并分别显示路径名、文件名和后缀名。
B3、显示递减数列:100、98、96、……、4、2、0,并求和。
B4、从句子中提取“荡妇大游行”这个词:“穿了裙子,不等于说可以。”加拿大警察的“如果不想被强奸,就不要把自己打扮得像荡妇”言论引发了世界性的抗议。7月31日,继加拿大、美国、英国、澳大利亚、巴西、荷兰、韩国之后,印度新德里也举行了“荡妇大游行”。
B5、由“ipconfig”命令获得网络配置信息,请提取 IP 地址“192.168.1.100”。也可将以下内容保存为文本进行。
- Ethernet adapter 本地连接:
- Connection-specific DNS Suffix . :
- IP Address. . . . . . . . . . . . : 192.168.1.100
- Subnet Mask . . . . . . . . . . . : 255.255.255.0
- Default Gateway . . . . . . . . . : 192.168.1.1
- ::由ipconfig命令获得以上网络配置信息,请提取 IP 地址。
复制代码
B6、提取指定行。系统播放器wmplayer目录中有一文本eula.txt(路径:C:\Program Files\Windows Media Player\eula.txt),其中有一段内容如下:
- 13. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from Microsoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.
复制代码
请将以上这段内容提取出来。
如果找不到该文件,请在 C:\Program Files\ 目录下自己建一个,当然,文本内容至少应该有十行以上,并将这段内容放到文本中间。
B7、【选做】有一文本123.txt,内容如下:
复制代码
请用批处理表示以上数字的关系:将类似“3、4、5、6、7”递增关系的数字组合设为“顺子”;将类似“9、9、9、10、10”由三个相同的数字与另外两个相同的数字组成的数字关系设为“三带二”。
可以用后面这组数字加以验证你的代码:3、3、4、4、4、5、6、7、7、7、7。
提示:
B1:无参数的FOR的应用。
B2:FOR /R 与批处理参数的应用。
B3、FOR /L 的应用。
B4、FOR /F 的选项 Tokens和Delims的应用,FOR对列的处理。
B5、FOR /F 参数的综合应用。不限制思路,稍难。
B6、FOR /F 的选项Usebackq的应用,及FOR对行的提取。只能使用FOR解题,具体思路不限。
B7、FOR 与变量延迟。来自批处理斗地主游戏中对符合规则的牌的分析。较难,选做。
答案在19页271楼
————————————————————————————————————
第三套:拓展应用
C1、从下列命令行中提出路径“C:\WINDOWS\system32\cmd.exe”,不要双引号:
cmd /c ""C:\WINDOWS\system32\cmd.exe" /f" 280
C2、显示10秒倒计时。这个在其他地方有了,可以不做。
C3、
编辑中,有空完善……
————————————————————————————————————
要求:请用code标签把代码部分首尾括起来。
Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
参考:批处理之家论坛使用常见问题FAQ
http://bbs.bathome.net/thread-3473-1-1.html
————————————————————————————————————
参考内容:
[原创][系列教程]批处理for语句从入门到精通[20101225更新]
作者: awuxixi 时间: 2008-1-23 17:46
1、批处理运行窗口显示1~100 这100 个数字;- for /L %%i in (1,1,100) do echo %%i
复制代码
2、批处理运行窗口显示 1、3、5.....99这50个数字;- for /L %%i in (1,2,99) do echo %%i
复制代码
3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;- @echo off
- set var=bbs bathome.net
- echo %var%
- for /f "tokens=1 " %%a in ("%var%") do echo %%a
- for /f "tokens=2 " %%b in ("%var%") do echo %%b
- for /f "tokens=3 " %%c in ("%var%") do echo %%c
- pause>nul
复制代码
(我只能用三个for)
作者: lixiaodaoaaa 时间: 2008-2-4 10:20 标题: 不错啊!
做的不错,我去试着运行,楼上水平不错,继续努力!!
作者: youxi01 时间: 2008-2-8 14:30 标题: 回复 2# 的帖子
第三题,用三个for固然可以实现效果。
其实一个for就可以的了:- echo off
- set var=bbs bathome.net
- echo %var%
- for %%i in (%var%) do echo %%i
- pause>nul
复制代码
作者: lixiaodaoaaa 时间: 2008-2-13 11:16 标题: 有点不明白啊?
- for /f "tokens=1 " %%a in ("%var%") do echo %%a
- for /f "tokens=2 " %%b in ("%var%") do echo %%b
- for /f "tokens=3 " %%c in ("%var%") do echo %%c
复制代码
这三行不明白,其他的都能看懂,麻烦解释一下了........
有点难啊!
楼上的运行出现找不到文件,错误希望改一下........
努力!!!
作者: lixiaodaoaaa 时间: 2008-2-13 11:16 标题: 很不错
总体很不错,希望继续努力啊!!
作者: hsyxh 时间: 2008-2-14 21:27
学习了,我也要继续努力。
作者: ieutk 时间: 2008-3-1 13:41
4楼in后的集中少了双引号,所以就会出现找不到文件的错误
另外题目是这样的
将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口
作者: e119085072 时间: 2008-3-5 09:50 标题: 我什么都看不懂 怎么办
我一个都看不懂,要怎么办啊
作者: wklxdmyl 时间: 2008-3-7 09:12
努力啊!!!!!!
可惜第三个没有做出来
作者: scdengting 时间: 2008-3-10 09:42
谢谢各位高手,小弟学习了,谢谢
作者: kennywah 时间: 2008-3-11 11:37
我也是一个都看不懂啊.............
作者: pusofalse 时间: 2008-3-11 22:24
1- for /l %%i in (1 1 100) do @echo %%i
复制代码
2- for /l %%i in (1 2 100) do @echo %%i
复制代码
3- for %%i in (bbs bathome.net) do @echo %%i
复制代码
4- for /f "tokens=2" %%i in (f:\test.txt) do @echo %%i
复制代码
对否。。
作者: CecleCW 时间: 2008-3-19 00:45
1、批处理运行窗口显示1~100 这100 个数字- for /l %%i in (1,1,100) do echo %%i
复制代码
2、批处理运行窗口显示 1、3、5.....99这50个数字;- for /l %%i in (1,2,100) do echo %%i
复制代码
3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口- @echo off
- set txt=bbs bathome.net
- for /f "tokens=1,2,3" %%i in ("%txt%") do set s1=%%i && set s2=%%j && set s3=%%k
- echo %s1%
- echo %s2%
- echo %s3%
- pause>nul
复制代码
4、
①将f:\test.txt内容全部显示在批处理窗口复制代码
或者- @echo off
- for /f "tokens=1,2,3" %%i in (test.txt) do echo %%i %%j %%k
- pause>nul
复制代码
②只显示 2 5 8显示在批处理窗口(分三行显示,每字一行)- @echo off
- setlocal EnableDelayedExpansion
- set index=0
- for /f "tokens=2" %%i in (test.txt) do (
- set /a index+=1
- set str!index!=%%i
- )
- echo %str1%
- echo %str2%
- echo %str3%
- pause>nul
复制代码
作者: angelbbaa 时间: 2008-3-25 13:38 标题: 第三题
- @echo off
- for /f "tokens=1-3 delims= " %%a in ("bbs bathome.net") do echo %%a%%b
- pause>nul
复制代码
作者: more 时间: 2008-3-27 09:17
第三题:- @echo off
- set var=bbs bathome.net
- for /f "tokens=1-3 delims= " %%i in ("%var%") do (
- echo %%i
- echo %%j
- echo %%k
- )
- echo.&pause
复制代码
作者: 553850000 时间: 2008-3-29 21:03
等一题
@echo off
for /l %%a in (1,1,100) do @echo %%a
pause
第二题
@echo off
for /l %%a in (1,2,99) do @echo %%a
pause
第四题
@echo off
for /f "tokens=2 delims= " %%a in (test.txt) do @echo %%a
pause
作者: easyguy 时间: 2008-4-3 13:37
很好,我支持这种方法来批处理,希望以后能多出些题目让新手来练习!!!!!!!
作者: zhangxiaopeng 时间: 2008-4-4 15:01
第四题:
@echo off
type test.txt
for /f "tokens=2" %%i in (test.txt) do echo %%i
pause
作者: sohu886 时间: 2008-4-9 13:46
第三题:
@echo off
set var=bbs bathome.net
echo %var%
for /f "tokens=1,2* delims= " %%a in ("%var%") do (
echo %%a
echo %%b
echo %%c
)
pause>nul
作者: 苹果也学批 时间: 2008-4-9 22:09
这么难,唉,还不懂,学习去,
作者: xiangzhili 时间: 2008-4-15 20:58 标题: 回贴
@echo off
for /L %%1 in (1,1,100) do echo %%1
for /L %%1 in (1,2,50)do echo %%1
pause>nul
第三个我不知道,不知道参数
作者: xiaoxx 时间: 2008-4-28 09:03
@echo off
echo 在批处理窗口显示1-100数字
pause
for /l %%i in (1,1,100) do echo %%i
echo 在批处理窗口显示1,3,5...99等50个数字
pause
for /l %%j in (1,2,99) do echo %%j
pause
set var=bbs bathome.net
for %%k in (%var%) do echo %%k
pause
type F:\test.txt
pause
for /f "tokens=2" %%l in (F:\test.txt) do echo %%l
pause
作者: yedashu 时间: 2008-5-8 13:34 标题: 刚学批处理,第三题参照4楼管理员改进了一下,可行,望指教
echo off
set var=bbs bathome.net
echo %var%
for /f "tokens=1,2,3" %%i in ("%var%") do echo %%i &echo %%j &echo %%k
pause>nul
作者: yedashu 时间: 2008-5-8 13:50 标题: 关于第三题,for的带/f和不带两种用法都可以实现,有什么区别阿?
for /f "tokens=1,2,3" %%i in ("%var%") do echo %%i &echo%%j &echo%%k
for %%k in (%var%) do echo %%k
in里面除了参数处理不一样外,他们循环取字符串时的是怎么取的,有什么区别阿?
刚学批处理,有太多不懂,望高手指点,先谢谢了!
作者: darkphx 时间: 2008-5-15 14:21
原帖由 yedashu 于 2008-5-8 13:50 发表
for /f "tokens=1,2,3" %%i in ("%var%") do echo %%i &echo%%j &echo%%k
for %%k in (%var%) do echo %%k
in里面除了参数处理不一样外,他们循环取字符串时的是怎么取的,有什么区别阿?
刚学批处理,有太多 ...
由于楼上的启发
我想问一下
如果在 for /f "tokens=1,2,3" %%i in ("%var%") do echo %%i &echo%%j &echo%%k 中
我想要引入字串 "%var%"而不是变量var怎么办?
有可能吗
请指教
作者: namejm 时间: 2008-5-15 16:39
如果要引入字符串"%var%" 而不是变量var,那么,就需要用 %%var%% 来表示。
作者: darkphx 时间: 2008-5-15 23:40
谢谢~~~~~
作者: tangfu 时间: 2008-6-7 22:04
for /f "tokens=1,2,3" %%i in ("%var%") do echo %%i &echo%%j &echo%%k
for %%k in (%var%) do echo %%k
的区别到底是什么?
我用cmd的时候for %%k in (%var%) do echo %%k好像是直接循环字符串,/f是循环的文件内容,不知道这样理解对不对
作者: null 时间: 2008-8-3 12:16
第一个:
for /l %%i in (1 1 100) do @echo %%i
第二个:
for /l %%i in (1 2 100) do @echo %%i
第三个问题我看得不是很明白
第四个:
for /f "tokens=2 delims= " %%i in (f:\test.txt) do @echo %%i
作者: hexiao361 时间: 2008-8-21 09:41
tokens=1,2,3
这个是什么意思啊?
作者: jiangjun6 时间: 2008-8-26 21:40
- @echo off
- setlocal enabledelayedexpansion
- set a=bbs bathome.net
- for %%i in (%a%) do (
- set b=%%i
- echo !b!
- )
- pause
复制代码
作者: jiangjun6 时间: 2008-8-26 22:04
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=* delims=." %%i in (test.txt) do (
- set a=%%i
- echo !a!
- )
- pause
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=2 delims= " %%i in (test.txt) do (
- set a=%%i
- echo !a!
- )
- pause
复制代码
作者: z_berry 时间: 2008-9-2 14:52
- @echo off
- for /L %%i in (1,1,10) do (
- echo %%i
- )
- pause
复制代码
作者: a794685135 时间: 2008-9-2 16:25
- @echo off
- echo 1.显示1~100这100个数字:
- for /l %%i in (1,1,100) do echo %%i
- pause
- echo 2.显示1、3、5……99这50个数字
- for /l %%i in (1,2,99) do echo %%i
- pause
- echo 3.将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
- set a=bbs bathome.net
- for /f "tokens=1,2,3" %%i in ('echo %a%') do (echo %%i
- echo %%j
- echo %%k)
- pause
- echo 4. ①test.txt内容全部显示在批处理窗口;
- for /f "tokens=*" %%i in ('type test.txt') do echo %%i
- echo 4. ②只显示 2 5 8显示在批处理窗口(分三行显示,每字一行)
- for /f "tokens=2" %%i in ('type test.txt') do echo %%i
- pause
复制代码
作者: jellyhk 时间: 2008-9-4 20:26
- @echo off
- color 0A
- title 工作
- echo 请输入你做的事情的标号!
- echo.-----------------------------------------------------
- echo. 1.显示1~100数字 2.显示1~100的单数
- echo. 3.将bbs bathome.net 分3行显示在窗口上
- echo. 4.将以下内容保存到F:\test.txt
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- set /p input=请输入你去的地方:
- if "%input%"=="1" goto a
- if "%input%"=="2" goto b
- if "%input%"=="3" goto c else (goto d)
- goto eof
- :a
- cls
- for /l %%i in (1 1 100) do echo %%i
- pause>nul&&exit
- goto eof
- :b
- cls
- for /l %%i in (1 2 100) do echo %%i
- pause>nul&&exit
-
- goto eof
- :c
- cls
- for %%i in (bbs bathome.net) do echo %%i
- pause>nul&&exit
- goto eof
- :d
- cls
- if not exist F:\test.txt echo F盘下没有test.txt是否工具创建?(y/n)
- set /p a=请输入:
- if "%a%"==Y (echo 1 2 3>test.txt&echo 4 5 6&echo 7 8 9&&cls&echo 创建成功是否显示F:\test.txt,(y/n)&&goto :type)else (echo 你选择的是n那你自己去创建吧!^-^~&pause&&exit)
- if "%a%"==y (echo 1 2 3>test.txt&echo 4 5 6&echo 7 8 9&&cls&echo 创建成功是否显示F:\test.txt,(y/n)&&goto :type) else (echo 你选择的是n那你自己去创建吧!^-^~&pause&&exit)
- exit
- :type
- set /p=
- set /p a=输入:
- if "%a%"==y (goto 123)else (echo 你不想显示那就不显示!~)
- if "%a%"==Y (goto 123)else (echo 你不想显示那就不显示!~)
- pause&exit
- :123
- type F:\test.txt
- pause&
复制代码
作者: jht52114 时间: 2008-9-4 20:30
观摩 学习学习
作者: yuanyi123 时间: 2008-9-5 06:56
前来淘金,呵
作者: flyinshanghai 时间: 2008-9-5 16:57
想看看高手人们的答案,学习学习
作者: condy 时间: 2008-9-5 23:23
@echo off
for %%i in (1 1 100) do echo %%i
新手,不太会
作者: dywjzh 时间: 2008-9-8 11:59
- @echo off
- for /l %%i in (1,1,100) do echo %%i
- pause>null
- for /l %%j in (1,2,99) do echo %%j
- pause>nul
- echo bbs bathome.net
- set name=bbs bathome.net
- echo %name%
- echo 分三行显示:
- for /f "tokens=1 " %%a in ("%name%") do echo %%a
- for /f "tokens=2 " %%b in ("%name%") do echo %%b
- for /f "tokens=3 " %%c in ("%name%") do echo %%c
- for /f "tokens=1,2,3" %%a in ("%name%") do echo %%a %%b %%c
- pause>nul
- type first.txt
- echo 只显示 2 5 8显示在批处理窗口(分三行显示,每字一行)
- for /f "tokens=2 " %%a in (first.txt) do echo %%a
- for /f "tokens=5 " %%b in (first.txt) do echo %%b
- for /f "tokens=8 " %%c in (first.txt) do echo %%c
- pause>nul
复制代码
作者: batbird 时间: 2008-9-11 17:09
第一个:
@echo off
for /l %%i in (1,1,100) do echo %%i
set i=
pause
第二个:
@echo off
for /l %%i in (1,2,99) do echo %%i
set i=
pause
第三个:
@echo off
for /f "tokens=1-3 delims= " %%i in ("bbs bathome.net") do (
echo %%i
echo %%j
echo %%k
)
set i=
set j=
set k=
pause
第四个:
@echo off
type test.txt
for /f "tokens=1-3 delims= " %%i in (test.txt) do echo %%j
pause
-----------------------------------------------------------------------------------------------
编辑一下,我将echo<变量>都按照echo %%val% 的格式写了(也没有错),应该是echo %%val,请高人解释一下为什么出了for就要用echo %val%格式,不太明白,谢谢~
[ 本帖最后由 batbird 于 2008-9-11 17:22 编辑 ]
作者: AK47 时间: 2008-9-16 15:44
@echo off
for /l %%i in (1 1 100) do echo %%i
pause
作者: AK47 时间: 2008-9-16 15:46
@echo off
for /l %%i in (1 3 99) do echo %%i
pause
作者: AK47 时间: 2008-9-16 15:47
- @echo off
- for %%i in (bbs bathome.net) do echo %%i
- pause
复制代码
作者: lulu520zlh 时间: 2008-9-19 14:39
- @echo off
- for /l %%i in (1 1 100) do echo %%i
- pause>nul
- for /l %%i in (1 2 99) do echo %%i
- pause>nul
- for /f "tokens=1,2,3" %%i in ("bbs bathome.net") do (
- echo %%i
- echo %%j
- echo %%k
- )
- pause>nul
- type 2.txt
- echo.
- for /f "tokens=2" %%i in (2.txt) do echo %%i
- pause>nul
复制代码
作者: foolharry 时间: 2008-10-23 00:19
新手,看不明白,还得多学啊
作者: zqy 时间: 2008-10-23 22:47
我是新手啊
试试看
1、批处理运行窗口显示1~100 这100 个数字;
@echo off
for /l %%i in (1 1 100) do echo %%i
pause>nul
2、批处理运行窗口显示 1、3、5.....99这50个数字;
@echo off
for /l %%i in (1 2 100) do echo %%i
pause>nul
3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口:
@echo off
for /f "tokens=1,2,3 delims= " %%a in ("bbs bathome.net") do (
echo %%a
echo %%b
echo %%c
)
pause>nul
4、先将以下内容保存到F:\test.txt
我是新手,那两题都不会做啊
作者: alex1987 时间: 2008-10-23 23:14 标题: 第4题答案
(1)。
@echo off
for /f "tokens=1-2*" %%a in (f:/test.txt) do echo %%a %%b %%c
pause
(2)。
@echo off
for /f "tokens=2" %%a in (f:/test.txt) do echo %%a
pause
作者: loveruixue 时间: 2008-10-30 15:07
for /l %%a in (1 1 100) do @echo %%a
for /l %%a in (1 2 99) do @echo %%a
for %%a in (bbs bathome.net) do @echo %%a
for /f "tokens=1,2,3" %%a in (test.txt) do @echo %%a %%b %%c
for /f "tokens=2" %%a in (test.txt) do @echo %%a
作者: claude55 时间: 2008-10-31 00:01
1 for /l %%i in (1,1,100) do echo %%i
2 for /l %%i in (1,2,99) do echo %%i
3 for /f "tokens=1-3" %%i in ("bbs bathome.net") do (
echo %%i
echo %%j
echo %%k
)
4 ①for /f "delims=" %%a in (test.txt) do echo %%a 可以保证原格式。。。
②for /f "tokens=2" %%a in (test.txt) do echo %%a
[ 本帖最后由 claude55 于 2008-10-31 00:15 编辑 ]
作者: nomyself 时间: 2008-11-2 10:01
第一题:- for /l %%i in (1,1,100) do @echo %%i
复制代码
第二题:- for /l %%i in (1,2,100) do @echo %%i
复制代码
第三题:- @echo off
- set var=bbs bathome.net
- for /f "tokens=1-3 delims= " %%i in ("%var%") do (
- echo %%i
- echo %%j
- echo %%k
- )
复制代码
第四题:
1,- for /f "delims=" %%i in (test.txt) do @echo %%i
复制代码
2,- for /f "tokens=2" %%i in (test.txt) do @echo %%i
复制代码
作者: bbszsnetcom 时间: 2008-11-3 08:55
第三题这样做,不可以吗?
\@echo off
for %%i in (bbs bathome.net) do echo %%i
pause
作者: kennybao 时间: 2008-11-10 14:46
我的答案,请指教:
Title1.
- @echo off
- for /l %%a in (1 1 100) do echo/&echo %%a
- pause>nul
复制代码
Title2.
- @echo off
- for /l %%a in (1 2 100) do echo/&echo %%a
- pause>nul
复制代码
Title3.
- @echo off
- echo 处理前:bbs bathome.net
- echo\&echo/&echo.
- echo 处理后:
- for /f "tokens=1,2* delims= " %%a in ("bbs bathome.net") do echo %%a&echo.%%b&echo.%%c
- pause>nul
复制代码
Title4.
- @echo off
- type test.txt
- echo.&echo\
- for /f "tokens=2 delims= " %%a in (test.txt) do echo %%a&echo.
- pause>nul
复制代码
作者: dglsy 时间: 2008-11-12 14:13
@echo off
echo.
echo start..............
for /l %%i in (1,1,100) do echo %%i
echo.
pause
for /l %%i in (1,2,100) do echo %%i
echo.
pause
for %%i in (bbs bathome.net) do echo %%i
echo.
pause
echo "1 2 3">test.txt
echo "4 5 6">>test.txt
echo "7 8 9">>test.txt
echo finished!
pause
作者: akiraakito 时间: 2008-11-13 13:59
1:
- @echo off
- for /l %%i in (1,1,100) do echo %%i
- pause>nul
复制代码
2:
- @echo off
- for /l %%i in (1,2,99) do echo %%i
- pause>nul
复制代码
3:
- @echo off
- set str=bbs bathome.net
- for %%i in (%str%) do (echo %%i)
- pause>nul
复制代码
4-1:
- @echo off
- for /f "tokens=*" %%i in (test.txt) do (echo %%i)
- pause>nul
复制代码
4-2
- @echo off
- for /f "tokens=2" %%i in (test.txt) do (echo %%i)
- pause>nul
复制代码
作者: frankies26 时间: 2008-11-15 16:40
还好比较简单
作者: adrien0901 时间: 2008-11-17 10:29
echo off
set var=bbs bathome.net
echo %var%
for /f "tokens=1,2,3" %%i in ("%var%") do echo %%i &&echo.%%j &&echo.%%k
pause>nul
作者: derek_pan 时间: 2008-11-27 17:46
原帖由 pusofalse 于 2008-3-11 22:24 发表
1 for /l %%i in (1 1 100) do @echo %%i
2 for /l %%i in (1 2 100) do @echo %%i
3 for %%i in (bbs bathome.net) do @echo %%i
4 for /f "tokens=2" %%i in (f:\test.txt) do @echo %%i
对否。。
这个是对的!厉害,这么简单的语句就搞定了!
作者: lsp19880301 时间: 2008-12-1 22:47 标题: 回复 2楼 的帖子 尊敬的老大们,小菜我有礼啦
你好,请问这个句中 for /L %%i in (1,1,100) do echo %%i 中的 /L 是什么意思,能否给个解释,
还有以下这几个 “tokens=1" 是什么意思,我看不懂。。
for /f "tokens=1 " %%a in ("%var%") do echo %%a
for /f "tokens=2 " %%b in ("%var%") do echo %%b
for /f "tokens=3 " %%c in ("%var%") do echo %%c
pause>nul
谢谢。。。小弟我刚回这不多久。望能得前辈的指点
作者: qqha001 时间: 2008-12-8 11:03 标题: 我来贴个不用for命令的 请高手指教
set n=1
:e
if %n% LSS 101 echo %n% & set /a n=n+1 & goto e
pause
set n=1
:e
if %n% LSS 100 echo %n% & set /a n=n+2 & goto e
pause
作者: firewolf85 时间: 2008-12-9 22:12
1.- @echo off
- for /l %%I in (1 1 100) do echo %%I
- pause>nul
复制代码
2.- @echo off
- for /l %%I in (1 2 100) do echo %%I
- pause>nul
复制代码
3- @echo off
- for %%i in (bbs bathome.net) do echo %%i
- pause>nul
复制代码
4.- @echo off
- for /f "delims=," %%i in (f:\test.txt) do echo %%i
- echo.
- for /f "delims=," %%i in (f:\test.txt) do (
- set i=%%i
- call set /p=!!i:~7,1!!<nul&echo.
- )
- pause>nul
复制代码
作者: Batcher 时间: 2009-1-5 12:35 标题: 回复 61楼 的帖子
本版有for命令讲解,建议多看看。
作者: p05401144 时间: 2009-1-9 22:12
学了一个FOR的参数/L
另外第3题我觉得这样最简单
@echo off
for /f "tokens=1-3" %%i in ("bbs bathome.net") do (echo %%i %%j %%k)
pause
作者: chenliujun 时间: 2009-1-10 14:56 标题: 回复 16楼 的帖子
@echo off
set var=bbs bathome.net
for /f "tokens=1-3 delims= " %%i in ("%var%") do (
echo %%i
echo %%j
echo %%k
)
echo.&pause这里为什么是I J k的 希望解释下!
作者: skysun 时间: 2009-1-11 11:21
原帖由 jellyhk 于 2008-9-4 20:26 发表
@echo off
color 0A
title 工作
echo 请输入你做的事情的标号!
echo.-----------------------------------------------------
echo. 1.显示1~100数字 2.显示1~100的单数
echo. 3.将bbs bathome.net 分3行显示 ...
为什么改别人的我会改 自己就是写不出来 - -||- @echo off
- color 0A
- title 工作
- echo 请输入你做的事情的标号!
- echo.-----------------------------------------------------
- echo. 1.显示1~100数字 2.显示1~100的单数
- echo. 3.将bbs bathome.net 分3行显示在窗口上
- echo. 4.将以下内容保存到F:\test.txt
- echo. R键返回 Q键退出
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- set /p input=请输入你去的地方:
- if "%input%"=="1" goto a
- if "%input%"=="2" goto b
- if "%input%"=="3" goto c
- if "%input%"=="r" goto r else (goto d)
- goto eof
- :a
- cls
- for /l %%i in (1 1 100) do echo %%i
- pause>nul&&goto r
- goto eof
- :b
- cls
- for /l %%i in (1 2 100) do echo %%i
- pause>nul&&goto r
- goto eof
- :c
- cls
- for %%i in (bbs bathome.net) do echo %%i
- pause>nul&&goto r
- goto eof
- :d
- cls
- if not exist F:\test.txt echo F盘下没有test.txt是否工具创建?(y/n)
- set /p a=请输入:
- if "%a%"==Y (echo 1 2 3>test.txt&echo 4 5 6&echo 7 8 9&&cls&echo 创建成功是否显示F:\test.txt,(y/n)&&goto :type)else (echo 你选择的是n那你自己去创建吧!^-^~&pause&&exit)
- if "%a%"==y (echo 1 2 3>test.txt&echo 4 5 6&echo 7 8 9&&cls&echo 创建成功是否显示F:\test.txt,(y/n)&&goto :type) else (echo 你选择的是n那你自己去创建吧!^-^~&pause&&exit)
- exit
- :type
- set /p=
- set /p a=输入:
- if "%a%"==y (goto 123)else (echo 你不想显示那就不显示!~)
- if "%a%"==Y (goto 123)else (echo 你不想显示那就不显示!~)
- pause&exit
- :123
- type F:\test.txt
- :r
- cls
- @echo off
- color 0A
- title 工作
- echo 请输入你做的事情的标号!
- echo.-----------------------------------------------------
- echo. 1.显示1~100数字 2.显示1~100的单数
- echo. 3.将bbs bathome.net 分3行显示在窗口上
- echo. 4.将以下内容保存到F:\test.txt
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- set /p input=请输入你去的地方:
- if "%input%"=="1" goto a
- if "%input%"=="2" goto b
- if "%input%"=="3" goto c else (goto d)
- goto eof
- :Q
- pause&exit
复制代码
[ 本帖最后由 skysun 于 2009-1-11 11:23 编辑 ]
作者: willowchun 时间: 2009-1-12 13:25
1、批处理运行窗口显示1~100 这100 个数字;
for /l %%i in (1,1,100) do echo %%i
2、批处理运行窗口显示 1、3、5.....99这50个数字;
for /l %%i in (1,2,99) do echo %%i
3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1,1,3) do (
set "a=bbs bathome.net"
echo !a!
)
pause
4、先将以下内容保存到F:\test.txt
复制内容到剪贴板代码:
1 2 3
4 5 6
7 8 9
①将f:\test.txt内容全部显示在批处理窗口;
for /f "delims=" %%i in (f:\test.txt) do echo %%i
②只显示 2 5 8显示在批处理窗口(分三行显示,每字一行)
for /f "tokens=2 delims= " %%i in (test.txt) do echo %%i
[ 本帖最后由 willowchun 于 2009-1-12 13:26 编辑 ]
作者: ccmvhd 时间: 2009-1-20 20:30
@echo off&&color 0a&&title 练习
echo.------------------------------------
:start
cls&&set a=0
echo.1.显示1~100
echo.2.显示100以内的单数
echo.3.将bbs bathome.net 分3行显示
echo.4.处理文本
echo.5.退出本练习作业
echo.在任一小题结束后按回车键将返回操作目录
echo.
set /p a=请输入小题目号:
if %a%==1 goto :aaa
if %a%==2 goto :bbb
if %a%==3 goto :ccc
if %a%==4 goto :ddd
if %a%==5 goto :end
echo 想忽悠在下? 呵呵。。。
pause>nul&&goto :start
:end
echo 都是些苯办法,呵呵。。
pause>nul&&exit
:aaa
for /l %%i in (1,1,100) do echo %%i
pause>nul&&goto :start
:bbb
setlocal enabledelayedexpansion
set a=1
echo %a%
for /l %%i in (1,1,49) do (
set /a b=2*%%i+a
echo !b!
)
pause>nul
goto :start
:ccc
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims= " %%a in ("bbs bathome.net") do (
echo %%a
echo %%b
echo %%c &&pause>nul
)
goto :start
:ddd
for /f "skip=46 tokens=2 delims= " %%i in (%~nx0) do call echo %%i
pause>nul&goto :start
1 2 3
4 5 6
7 8 9
作者: zhangenming 时间: 2009-1-24 20:56
1:
@echo off
for /l %%i in (1,1,100) do echo %%i
pause>nul
2:
@echo off
for /l %%i in (1,2,100) do echo %%i
pause>nul
3:
@echo off
for %%i in (bbs bathome.net) do echo %%i
pause>nul
4:
@echo off
for /f "delims=*" %%i in (e:\test.txt) do echo %%i
pause>nul
5:
@echo off
for /f "tokens=2" %%i in (e:\test.txt) do echo %%i
pause>nul
都还行吧?!
作者: strong12345 时间: 2009-1-25 12:06 标题: 小弟初學者 第3題 1個for完成
@echo off
for /f "tokens=1,2,3 delims= " %%a in ("bbs bathome.net") do echo %%a>test.txt & echo %%b >> test.txt & echo %%c >> test.txt
作者: strong12345 时间: 2009-1-27 08:10 标题: 小弟已經全部理解了,並寫出全部解答(全部一個for)
第一題:
- @echo off
- for /L %%a in (1,1,100) do echo %%a
- pause>nul
复制代码
第二題:
- @echo off
- for /L %%a in (1,2,99) do echo %%a
- pause>nul
复制代码
第3題:
- @echo off
- for /F "tokens=1-3" %%a in ("bbs bathome.net") do echo %%a & echo %%b & echo %%c
- pause>nul
复制代码
第4題①: (輸出空格數與原文件同)
- @echo off
- for /F "delims=" %%a in (F:\test.txt) do echo %%a
- pause>nul
复制代码
第4題②:
- @echo off
- for /F "tokens=1-3" %%a in (F:\test.txt) do echo %%b
- pause>nul
复制代码
[ 本帖最后由 strong12345 于 2009-1-27 11:28 编辑 ]
作者: evident 时间: 2009-2-5 16:17
三题 是不是只是将单词 分行?如果是的话,下面的就可以实现。
@echo off
set str=bbs bathome.net
for %%i in (%str%) do echo %%i
pause
作者: hongznbiao 时间: 2009-2-7 16:49 标题: 菜鸟我来学习
菜鸟我来学习,训练自己的思考能力.
作者: mn960mn 时间: 2009-2-7 19:05 标题: 回复for应用入门训练 1
@echo off
for /l %%a in (1 1 100) do echo %%a
pause
exit
作者: zjs4814466 时间: 2009-2-11 09:28 标题: 回复 1楼 的帖子
@echo off
set var=bbs bathome.net
echo %var%
for %%j in (bbs bathome.net) do echo %%j
pause
我这样运行也可以达到题目的显示要求,但是这里为什么用set ?我是菜鸟还希望各位大鸟指教!!!!!!!!!!!!
作者: Batcher 时间: 2009-2-11 09:32 标题: 回复 76楼 的帖子
set仅仅是为了定义一个变量而已
作者: zjw767676 时间: 2009-2-15 17:12
1 for /l %%i in (1 1 100) do echo %%i
2 for /l %%i in (1 2 100) do echo %%i
3 for %%i in ("bbs bathome net") do %%i
4 1.for /f "delmis=" %%i in (f:\test.txt) do echo %%i
2 for /f "tokens=2" %%i in (f:\test.txt) do echo %%i
作者: conjeelin 时间: 2009-2-17 19:31
第四题
@echo off
for /f "delims=;" %%j in (test.txt) do echo %%j
echo.
for /f "tokens=2" %%i in (test.txt) do echo %%i
pause
作者: pzspdl 时间: 2009-2-22 22:52
其实第三题的意思我根本不懂
作者: hyx 时间: 2009-2-24 19:57
4.1 for /f "tokens=*" %%i in (test.txt) do echo %%i
4.2 for /f "tokens=2,5,8" %%i in (test.txt) do echo %%i
作者: myzwd 时间: 2009-2-24 20:48 标题: 回复 1楼 的帖子
@echo off
mode con cols=800 lines=600
for /f "tokens=*" %%i in ('more /c +5 %~s0') do (
echo %%i )
exit /b 10
1 2 3
4 5 6
7 8 9
作者: iamcfan 时间: 2009-3-3 19:36
原帖由 zjw767676 于 2009-2-15 17:12 发表
1 for /l %%i in (1 1 100) do echo %%i
2 for /l %%i in (1 2 100) do echo %%i
3 for %%i in ("bbs bathome net") do %%i
4 1.for /f "delmis=" %%i in (f:\test.txt) do echo %%i
...
我们的做法是如出一辙,其实很多朋友都把简单的问题复杂化了.
作者: bestsea 时间: 2009-3-4 16:05 标题: 交卷
1,
@echo off
for /l %%i in (1 1 100) do echo %%i
pause
2,
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 50) do (set a=%%i & set /a b=!a!*2-1 &echo !b!)
pause
3,
@echo off
for %%I in (bbs bathome.net) do echo %%I
pause
4,
@echo off
for /f "tokens=1,2,3" %%i in (test.txt) do echo %%i %%j %%k
pause
for /f "tokens=2" %%i in (test.txt) do echo %%i
pause
作者: qxhonker 时间: 2009-3-5 15:44
1.- @echo off
- for /l %%a in (1,1,100) do echo %%a
- pause
复制代码
2.- @echo off
- for /l %%a in (1,2,100) do echo %%a
- pause
复制代码
3.- @echo off
- for %%a in (bbs bathome.net) do echo %%a
- pause
复制代码
如果是在文本中:
test.txt复制代码
main.bat- @echo off
- for /f "tokens=1-3" %%a in (test.txt) do echo %%a&echo %%b&echo %%c
- pause
复制代码
4.
①- @echo off
- for /f "delims=" %%a in (test.txt) do echo %%a
- pause
复制代码
②- @echo off
- for /f "tokens=2" %%a in (test.txt) do echo %%a
- pause
复制代码
作者: qxhonker 时间: 2009-3-5 15:49
原帖由 iamcfan 于 2009-3-3 19:36 发表
我们的做法是如出一辙,其实很多朋友都把简单的问题复杂化了.
我看你们错了吧
for %%i in ("bbs bathome.net") do echo %%i
这里不应该要双引号吧
我试了下 加双引号就只显示一行了
作者: xiaoruiado 时间: 2009-3-14 20:30
@echo off
set context=bbs bathome.net
echo %context%
echo 1 2 3 > e:\test.txt
echo 4 5 6 >> e:\test.txt
echo 7 8 9 >> e:\test.txt
for /f %%i in (e:\test.txt) do echo %%i
pause>nul
作者: mypichuli 时间: 2009-3-15 13:08
学习了,多谢
作者: rogoo 时间: 2009-3-22 15:37
::1
for /l %%i in (1,1,100) do (echo %%i)
::2
for /l %%i in (1,2,100) do (echo %%i)
::3
for /f %%i in ("bbs.bathome.net) do (echo %%i)
::4.1
type f:\text.txt
::或者
for /f %%i in (F:\text.txt) do (echo %%i)
::4.2
for /f "delims= tokens=2" %%i in (F:\text.txt) do (echo %%i)
作者: freeback 时间: 2009-3-22 17:29
1.for %%i in(1 1 100) do echo. %%i
2.for /l %% in(1 2 99) do echo.%%i
作者: rboert 时间: 2009-3-27 10:09
- @echo off
- for %%i in (f:\test.txt) do type %%i
- echo.
- echo.
- for /f "tokens=*" %%i in (f:\test.txt) do echo %%i
- echo.
- for /f "tokens=2" %%i in (f:\test.txt) do echo %%i
- pause >nul
复制代码
作者: wanpg 时间: 2009-3-27 16:23
关注了。
第3个:
echo off
set var="bbs bathome.net"
for /f "tokens=1,2,3" %%i in (%var%) do (
echo %%i
echo %%j
echo %%k
)
这样可以,但是如果set var="bbs bathome.net"不加引号,有问题。
作者: cainiao736 时间: 2009-3-27 21:00
第一题:- @echo off
- for /l %%i in (1,1,100) do echo %%i
- pause
复制代码
第二题:- @echo off
- for /l %%i in (1,2,99) do echo %%i
- pause
复制代码
第三题:- @echo off
- set str=bbs bathome.net
- set count=1
- :begin
- for /f "tokens=%count% delims= " %%i in ("%str%") do (echo %%i&&set /a count+=1&&goto begin)
- pause
复制代码
第四题:
1.- @echo off
- type test.txt
- pause>nul
复制代码
2.- @echo off
- for /f "tokens=2 delims= " %%i in (test.txt) do echo %%i
- pause
复制代码
作者: lygwdyanzi 时间: 2009-4-4 12:15
- @echo off
- for /f "delims=&" %%i in (test.txt) do echo %%i
- pause
复制代码
将分隔符换成txt文件中不存在的符号,能显示全部
[ 本帖最后由 lygwdyanzi 于 2009-4-4 12:17 编辑 ]
作者: key790927 时间: 2009-4-13 14:05 标题: 回复 4楼 的帖子
两个问题:
1.for 语句中%var%是否需要加引号啊?不加好像不行?
2.即使加了引号,打印出来的也不是3行,而是3列!
谢谢!
作者: smallflystar 时间: 2009-4-18 22:18 标题: 我的答案
@echo off
for /f "tokens=1-3 delims= " %%i in (c:\test.txt) do echo %%i %%j %%k
pause
for /f "tokens=2 delims= " %%i in (c:\test.txt) do echo %%i
pause
作者: Batcher 时间: 2009-4-18 23:59 标题: 回复 95楼 的帖子
原文有笔误,作者已更正,请重新测试。
作者: czq19731102 时间: 2009-4-20 10:03 标题: 我的答案
@echo 1、批处理运行窗口显示1~100 这100 个数字
@echo off
for /l %%i in (1,1,100) do echo %%i
pause
@echo 2、批处理运行窗口显示 1、3、5.....99这50个数字
for /l %%i in (1,2,99) do echo %%i
pause
@echo 3.1、将 bbs bathome.net 在同一行显示在批处理运行窗口
for /f "tokens=1-3" %%i in ("bbs bathome.net") do echo %%i %%j %%k
pause
@echo 3.2、将 bbs bathome.net 分成三行显示在批处理运行窗口
for /f "tokens=1-3" %%i in ("bbs bathome.net") do echo. %%i & echo. %%j & echo. %%k
pause
@echo 4.1、将f:\test.txt内容全部显示在批处理窗口
for /f "delims=" %%i in (f:\test.txt) do echo %%i
pause
@echo 4.2只显示 2 5 8显示在批处理窗口(分三行显示,每字一行)
for /f "tokens=2" %%i in (f:\test.txt) do echo %%i
pause
[ 本帖最后由 czq19731102 于 2009-4-20 10:08 编辑 ]
作者: haizi0115 时间: 2009-4-20 12:23 标题: 第三题
第三题
@echo off
for %%i in (bbs bathome.net) do echo %%i
pause
作者: txb1989 时间: 2009-4-27 17:07
@echo off
for /l %%a in (1,1,100) do echo %%a
pause
作者: xuqingbai 时间: 2009-4-27 18:09
4.1
@echo off
for /f "delims=," %%i in (c:\0.txt) do echo %%i
pause
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |