返回列表 发帖
@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
@echo off
for /f  "tokens=1,2,3 delims=. " %%a in ("bbs bathome.net") do (
echo %%a
echo %%b
echo %%c
)
pause>nul
@echo off
for /f "tokens=1,2,3" %%i in (test.txt) do echo %%i %%j %%k
pause>nul
@echo off
for /f "tokens=2 delims= " %%a in (test.txt) do (
echo %%a
)
pause>nul COPY
1

评分人数

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

TOP

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

评分人数

TOP

第一套题目
::1、批处理运行窗口显示1~100100 个数字;
::2、批处理运行窗口显示 135.....9950个数字;
::3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
::4、先将以下内容保存到F:\test.txt
::1      2        3
::4      5        6
::7      8        9
::①将f:\test.txt内容全部显示在批处理窗口;
::②只显示 2      5        8显示在批处理窗口(分三行显示,每字一行)
@echo off
rem 1、批处理运行窗口显示1~100 这100 个数字;
echo 1、显示1-100的数字:
pause>nul
for /l %%i in (1,1,100) do echo %%i
pause
rem 2、批处理运行窗口显示 1、3、5.....99这50个数字;
echo 2、显示135.....9950个数字:
pause>nul
for /l %%i in (1,2,100) do echo %%i
pause
rem 3、将 bbs bathome.net (在同一行)分成三行显示在批处理运行窗口;
echo 3、bbs bathome.net (在同一行)分成三行显示
pause>nul
for /f "tokens=1-3 delims=. " %%i in ("bbs bathome.net") do (echo %%i)&(echo %%j)&(echo %%k)
pause
rem 4、显示test.txt全部内容到界面,显示2 5 8到界面
echo 4.1、显示test.txt全部内容到界面
pause>nul
for /f "delims=" %%i in (E:\Sync115\bathome\tmp\test1.txt) do echo %%i
pause
echo 4.2、只显示2 5 8到界面
pause>nul
for /f "tokens=2" %%i in (E:\Sync115\bathome\tmp\test1.txt) do echo %%i
pauseCOPY
1

评分人数

TOP

::分行显示李白的古诗《静夜思》:“床前明月光   疑是地上霜   举头望明月   低头思故乡”
@echo off
for /f "tokens=1-4" %%i in ("床前明月光   疑是地上霜   举头望明月   低头思故乡") do (
echo %%i
echo %%j
echo %%k
echo %%l
)
pauseCOPY

TOP

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

TOP

::显示递减数列:1009896、……、420,并求和。
@echo off&setlocal enabledelayedexpansion
echo ====== NUMBER 100 -- 1 =======
rem 用count计数,每10个数输出一行
set count=0
set sum=0
for /l %%i in (100, -1, 1) do (
set /a count+=1
set /a sum+=%%i
if !count!==1 (
set line=%%i
) else (
set line=!line! %%i
)
if !count!==10 (
echo !line!
set count=0
)
)
echo.
echo The sum of 100 to 1 is %sum%
pause
COPY

TOP

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

TOP

::由“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 地址。
@echo off&setlocal enabledelayedexpansion
set count=0
for /f "skip=2 tokens=15" %%i in (ipconfig.txt) do (
set /a count+=1
if !count!==1 echo %%i
)
pauseCOPY

TOP

::有一文本123.txt,内容如下:
::3 4 5 6 7 9 9 9 10 10
::请用批处理表示以上数字的关系:将类似“34567”递增关系的数字组合设为“顺子”;
::将类似“9991010”由三个相同的数字与另外两个相同的数字组成的数字关系设为“三带二”。
::可以用后面这组数字加以验证你的代码:33444567777
@echo off&setlocal enabledelayedexpansion
echo ** 请输入10个数字,以空格分隔:
echo ** 数字间的格式为:一个递增的5顺+3个相同数字+2个相同数字
echo ** 形如:3 4 5 6 7 9 9 9 10 10
:begin
echo.
echo =========================================================
set /p s=请输入:
for /f "tokens=1-11" %%i in ("%s%") do (
set a0=%%i
set a1=%%j
set a2=%%k
set a3=%%l
set a4=%%m
set a5=%%n
set a6=%%o
set a7=%%p
set a8=%%q
set a9=%%r
set b0=%%s
rem 检查参数个数
call :countNumber !a0! !a1! !a2! !a3! !a4! !a5! !a6! !a7! !a8! !a9! !b0!  
if not !count!==10 (
echo 格式错误:输入个数不对,请重新输入!
goto :begin
) else (
rem 检查参数是否都是数字
call :checkNumber !a0! !a1! !a2! !a3! !a4! !a5! !a6! !a7! !a8! !a9!
if not !allNumberFlag!==true (
echo 格式错误:存在非数字,请重新输入!
goto :begin
) else (
rem 检查前五个数字是否是顺子
set /a tmp1=!a0!+1
set /a tmp2=!a1!+1
set /a tmp3=!a2!+1
set /a tmp4=!a3!+1
set flag1=false
if !tmp1!==!a1! (
if !tmp2!==!a2! (
if !tmp3!==!a3! (
if !tmp4!==!a4! (
set flag1=true
)
)
)
)
if not !flag1!==true (
echo 格式错误: 前五个数字不是顺子
) else (
rem 检查第 6、7、8个数字是否相等
set flag2=false
if !a5!==!a6! (
if !a6!==!a7! (
set flag2=true
)
)
if not !flag2!==true (
echo 格式错误: 第678个数字不相等
) else (
rem 检查第 9、10个数字是否相等
if not !a8!==!a9! (
echo 格式错误: 第910个数字不相等
) else (
echo 输入正确!
)
)
)
)
)
)
rem 是否重来?
echo.
set /p redo=是否重来? (y or n)
if /i "%redo%"=="y" goto :begin
echo 请按任意键退出...
pause>nul
goto :eof
rem 定义函数:判断输入数字的个数
:countNumber
set count=0
:loop1
if not "%1"=="" (
set /a count+=1
shift
goto :loop1
) else (
goto :eof
)
rem 定义函数:判断输入的是否都是数字
:checkNumber
set allNumberFlag=true
:loop2
set n=%1
if not "%n%"=="" (
rem 判断是否为数字
for /f "delims=1234567890" %%a in ("%n%@") do if "%%a"=="@" (set isNumber=true) else (set isNumber=false)
) else (
rem 如果为空,则所有参数都检查过了,退出
goto :eof
)
if %isNumber%==true (
rem 如果是数字,则继续检查下一个参数
shift
goto :loop2
) else (
rem 如果检查到一个非数字,则退出
set allNumberFlag=false
goto :eof
)COPY
1

评分人数

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

TOP

交第一套答案
1
@echo off
for /l %%i in (1,1,100) do echo %%i
pauseCOPY
2
@echo off
for /l %%i in (1,2,100) do echo %%i
pauseCOPY
3
@echo off
for /l %%i in (1,1,3) do echo bbs bathome.net
pauseCOPY
4-1
@echo off
for /f "delims= tokens=1,2,3" %%i in (f:\test.txt) do echo %%i
pauseCOPY
4-2
@echo off
for /f  "tokens=2" %%i in (f:\test.txt) do echo %%i
pauseCOPY
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

返回列表