批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖
奥,我懂了,少了接收的变量
待我出山之时,定让土匪大名满世界

TOP

  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 (
  6. if "%%k" =="" (echo %%j) else (echo %%j && echo %%k) )
  7. )
  8. pause
复制代码
待我出山之时,定让土匪大名满世界

TOP

回复 2# awuxixi


    显示结果是:bbs bathome.net
                      bbs
                      bathome.net
   应该显示是:bbs
                     bathome
                     net
   我的理解楼主的意思是这个,
学点东西

TOP

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
学点东西

TOP

::======================================
1、批处理运行窗口显示1~100 这100 个数字
::======================================
@echo off
for /l %%i in (1,1,100) do echo %%i
pause>nul

TOP

::===========================================
2、批处理运行窗口显示 1、3、5.....99这50个数字
::===========================================
@echo off
for /l %%i in (1,2,99) do echo %%i
pause>nul

TOP

::===========================================
::3、将 bbs bathome.net (在同一行
::)分成三行显示在批处理运行窗口
::===========================================
echo off
set num=bbs bathome.net
echo %num%
for  %%i in (%num%) do echo %%i
pause>nul

TOP

::===========================================
::4、先将以下内容保存到F:\test.txt
::1      2        3
::4      5        6
::7      8        9
::复制代码
::①将f:\test.txt内容全部显示在批处理窗口;
::===========================================
@echo off
type test.txt
pause>nul

TOP

::===========================================
::4、先将以下内容保存到F:\test.txt
::1      2        3
::4      5        6
::7      8        9
::复制代码
::②只显示 2      5        8显示在批处理窗口(分三行显示,每字一行
::===========================================
@echo off
for /f "tokens=2" %%i in (test.txt) do echo %%i
pause>nul

TOP

::===========================================
::B1、分行显示李白的古诗《静夜思》:“床前明月光   疑是地上霜   举头望明月   低头思故乡”
::===========================================
@echo off
for %%i in (床前明月光   疑是地上霜   举头望明月   低头思故乡) do echo %%i
pause>nul

TOP

本帖最后由 jian123ch 于 2014-10-20 22:52 编辑

第三题
  1. @echo off
  2. set stra="bbs bathome.net"
  3. for /f "tokens=1,2,3 delims=. " %%i in (%stra%) do echo %%i & echo %%j & echo .%%k
复制代码
第四题
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. @type test.txt
  4. echo.
  5. echo -----------------
  6. for /f "tokens=1-3" %%i in (test.txt) do set /a stra=%%j & echo !stra!
  7. pause >nul
复制代码
第B1题
  1. @echo off
  2. set stra="床前明月光   疑是地上霜   举头望明月   低头思故乡"
  3. echo 原文内容:
  4. echo %stra:"=%
  5. echo -------------------------------
  6. echo 分行显示:
  7. for /f "tokens=1-4" %%i in (%stra%) do echo %%i & echo %%j & echo %%k & echo %%l
  8. pause >nul
复制代码
第B2题
  1. @echo off
  2. for /r c:\ %%i in (*mplay*.*) do set /p=路径名:%%~pi 文件名:%%~ni 扩展名:%%~xi<nul & echo.
  3. pause >nul
复制代码
第B3题
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 数列中的各元素为:
  4. for /l %%i in (100,-2,0) do (
  5.   set /p=%%i <nul
  6.   set /a stra=!stra!+%%i
  7. )
  8. echo.
  9. echo ------------------------------------------------
  10. echo 数列中的各元素和:
  11. echo !stra!
  12. pause >nul
复制代码
第B4题
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set stra="“穿了裙子,不等于说可以。”加拿大**的“如果不想被强奸,就不要把自己打扮得像**”言论引发了世界性的**。7月31日,继
  4. 加拿大、美国、英国、澳大利亚、巴西、荷兰、韩国之后,印度新德里也举行了“**大**”。"
  5. for /f "tokens=3 delims=。" %%i in (%stra%) do (
  6.   set strb=%%i && set strb=!strb:“=! && set strb=!strb:”=! && set strb=!strb:~-8! && echo !strb!
  7. )
  8. pause >nul
复制代码
第B5题
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p=本机的IP地址为:<nul
  4. for /f "tokens=1,2 delims=:" %%i in ('ipconfig') do (
  5.   set stra=%%i && set stra=!stra:. =! && set stra=!stra: =! && set strb=!stra:~0,2!
  6.   if !strb! equ IP echo %%j
  7. )
  8. pause >nul
复制代码

TOP

B4题目代码如下
  1. @echo off
  2. for /f "delims=“” tokens=5" %%i in (test1.txt) do echo %%i
  3. pause
复制代码
上面代码可以正确提取出“**大**”,但是有个问题:分割的符号是“”,所以我可以认为是tokens=1时,提取出来的是内容为空;tokens=6时,提取出来的内容才是“**大**”。
但是实际使用tokens=6时结果是“。”,同样的tokens=1时结果是“穿了裙子,不等于说可以。”。
所以我大胆推测下:delims作用对象不包括开始的标点。如果开始即使标点符号,那么实际处理从第二个标点开始。不知道各位大虾怎么看这个问题?

TOP

回复 2# awuxixi

for %%i in (bbs,bathome,net) do echo %%i
  1. @echo off
  2. for %%i in (bbs,bathome,net) do echo %%i
  3. pause
复制代码

TOP

本帖最后由 Bat_s 于 2015-1-25 15:23 编辑

第一题
  1. @echo off
  2. for /l %%i in (1,1,100) do set /p=%%i<nul
  3. pause
复制代码
第二题
  1. @echo off
  2. for /l %%i in (1,1,100) do set /p=%%i<nul
  3. echo.&pause
复制代码
第三题
  1. @echo off
  2. set a=bbs bathome.net
  3. for /f " tokens=1-3 delims=. " %%i in ("%a%") do echo %%i %%j %%k
  4. echo.&pause
复制代码
第四题
  1. @echo off
  2. pushd c:\
  3. echo 1 2 3 >test.txt
  4. echo 4 5 6 >>test.txt
  5. echo 7 8 9 >>test.txt
  6. for /f "delims=" %%i in (test.txt) do echo %%i
  7. for /f "tokens=2" %%i in (test.txt) do echo %%i
  8. pause
复制代码
幼苗可成大树,遮风雨

TOP

B1解题
  1. @echo off
  2. echo 床前明月光   疑是地上霜   举头望明月   低头思故乡>test.txt
  3. for /f  "tokens=1-3"  %%i in (test.txt) do echo.%%i&echo.%%j&echo.%%k
  4. pause
复制代码
用CALL
@echo off
call :1  床前明月光   疑是地上霜   举头望明月   低头思故乡
pause
:1
echo %1
echo %2
echo %3
echo %4
幼苗可成大树,遮风雨

TOP

返回列表