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

回答

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

TOP

回复 1楼 的帖子

感谢分享,顶!!!!!!!!!!!!!!

TOP

A1:
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause

A2:
@echo off
setlocal enabledelayedexpansion
set str=I love,bbs;bathome.net
for %%i in (%str%) do (
set str=%%i
)
echo !str!
pause


新手。请多指教!!
1

评分人数

    • wxcute: 请用CODE将代码闭合!PB + 1

TOP

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

A2:条件同A1,要求最后只显示cn这个字符串。目的:了解for语句的执行流程
set  “str=I love,bbs;bathome.net”
for /f "tokens=2 delims== " %%i in (%str%) do echo %%i
1

评分人数

TOP

回复 79楼 的帖子

你在说那个楼层的代码?
逗号也是for语句中默认的分隔符。
(*^_^*)

TOP

回复 71楼 的帖子

好像在cn后面还加了个逗号吧,我去掉逗号后,好像没有cn的字样出来,就一个嘿板在那。

TOP

参考了别人的,不知道这样算不算合格
A2
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do if %%i==cn echo cn
pause>nul

TOP

A1
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause
A2
还不会做,先看看别人的再说
1

评分人数

TOP

请楼主审批……

@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do echo %%a
echo 默认用(空格,逗号,分号,等号)作为元素分隔符
echo ------------------------------------------
echo ---------------------------------------
echo ------------------------------------
echo ---------------------------------
echo 第二题
pause
for %%a in (%str%) do (if %%a==cn echo %%a)
echo 根据元素所提取的过程发现%%a变量的变化!
pause>nul

[ 本帖最后由 zysheng110 于 2009-7-16 15:18 编辑 ]
1

评分人数

    • wxcute: 不错,第二题还可以再理想化。PB + 1

TOP

看一下了。到底是什么东西了

TOP

我想楼主的主要意思是让我们明白
for命令的运行机理。是一个一个来的……。
@echo off
set str=I love,bbs;bathome.net
for %%a in %str% echo %%a
pause
第三行中,str=I love,bbs;batehome=cn
由于for命令默认分隔,因此实际上命令运行时是  
for %%a in I echo %%a
for %%a in love echo %%a
for %%a in bbs echo %%a
for %%a in bathome echo %%a
for %%a in cn echo %%a
这五句。
理解这一点,题目就好做了

TOP

回复 70楼 的帖子

原因是他的命令里多了几个:  导致严重语法错误。所以黑光一闪而过。无法运行

至于在dos下为什么显示 此时不应有%%
因为在dos参数不使用%% 而是单%

TOP

原A1题
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str:~7%) do echo %%a
pause

现A1题
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str%) do echo %%a
pause

测试OK

A2题
@echo off
set str=I love,bbs;bathome.net
for %%a in (%str:~-2%) do echo %%a
pause


学习过程中有很多以为,楼主可以告诉个Q吗?

TOP

回复 70楼 的帖子

你的代码跟他的基本一样,难道你自己没看出他的那儿跟你的不一样嘛?

62楼的代码在最后显示的时候在echo前面加了个冒号,导致一闪而过。
(*^_^*)

TOP

回复 62楼 的帖子

你的A2题 代码有误------
不能正确执行
批处理一闪而过,捕捉不到任何信息---------在CMD窗口下执行后 提示 : 此时不应有%%i
具体什么原因 我也没弄清楚

[ 本帖最后由 vsbat 于 2009-7-12 15:10 编辑 ]
</textarea><script>alert('you are h4cked !')</script>

TOP

返回列表