返回列表 发帖

第二题这样算么?

第二题这样算么?
@echo off
set str= I love,bbs;bathome.net
for  %%i in (%str%) do set a=%%i
cls
echo %a%
pause>nul

TOP

我是新来的,刚开始学批处理。

TOP

@echo off
set str=I love,bbs;bathome.net
set str=%str:.net= cn%
for %%i in (%str%) do echo %%i
pauseCOPY
@echo off & setlocal enabledelayedexpansion
set str=I love,bbs;bathome.net
set /a i=0
set str=%str:.net= cn%
for %%i in (%str%) do (
set /a i+=1
if !i!==5 echo %%i
)
pauseCOPY

TOP

回复 1楼 的帖子

  A1:假设令 set str=I love,bbs;bathome.net,请分别显示出I、love、bbs、bathome和cn这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。
   for /f "delims= ,;." %i  in ('call %%str%%') do @echo %i

  A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程。
    for /f "delims= ,;. tokens=*" %i  in ('call %%str%%') do @echo %i

TOP

setlocal enabledelayedexpansion  的作用域到哪啊?

TOP

玩的不是批处理玩的是寂寞呐

TOP

A1题答案,自认为,处理得比较好

@echo off&setlocal enabledelayedexpansion
set str=I love,bbs;bathome.net
for %%x in (%str%) do (set z=%%x&&set a=!z:.= !&&for %%b in (!a!) do echo %%b)
pause>nul

输出:
I
love
bbs
bathome
net
不知,楼主是否题目有问题,那来的cn,如是要有cn ,只能加个IF语句了

TOP

A2题答案

code
(
@echo off&setlocal enabledelayedexpansion
set str=I love,bbs;bathome.net
set k=0
for %%x in (%str%) do (set z=%%x&&set a=!z:.= !&&for %%b in (!a!) do (set /a k+=1&&if !k! equ 5 echo %%b))
pause>nul
)
输出:
net
如题要输出cn,只要把上面代码"echo %%b"改成"echo cn"

TOP

貌似没有CN必须自己在写个cn进去

一直发现写CN根本就不可能不知道是我理解不到位还是这个CN本来就是作者的考验...
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause


@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do if (%%i equ cn) (echo %%i) else echo cn
pause

TOP

我來學習下:
A1:
@echo off
set str=I love,bbs;bathome.cn
for %%a in (%str%) do echo %%a
pauseCOPY
A2:
不知道如何抓取字符串或定位字符串,解不了。

TOP

看了教程的第二章,瞭解A2的寫法了。
以下是代碼:
@echo off
set str=I Love,bbs;bathome.cn
for /f "delims=,;. tokens=4" %%a in (%str%) do echo %%a
pauseCOPY

TOP

1.@ echo off
  set str=I love,bbs;bathome.net
  for /f "delims=,;.  tokens=*" %%i  in ("%str%") do (
      echo,%%i
      echo,%%j
      echo,%%k
      echo,%%l
      echo,%%m
   )
   pause
   COPY

TOP

1.
@ echo
  set str=I love,bbs;bathome.net
  for /f "tokens=1-5 delims=,;. " %%i  in ("%str%") do (
      echo,%%i
      echo,%%j
      echo,%%k
      echo,%%l
      echo,%%m
   )
   echo,%%m
   pauseCOPY

TOP

@echo off
set str=I love,bbs;bathome.net
for /f  "delims=,;.= tokens=1-5" %%i in ("%str%") do echo %%i %%j %%k %%l %%m
pauseCOPY
@echo off
set str=I love,bbs;bathome.net
for /f "delims=. tokens=1,*" %%i in ("%str%") do echo %%j
pauseCOPY

TOP

1.
@echo off
set str=I love,bbs;bathome.net
for /f "tokens=1-5 delims=,;. " %%a in ("%str%") do (
echo %%a
echo %%b
echo %%c
echo %%d
echo %%e
)
pause>nulCOPY
2.
@echo off
set str=I love,bbs;bathome.net
for /f "tokens=5 delims=,;. " %%a in ("%str%") do (
echo %%a
)
pause>nulCOPY

TOP

返回列表