前言

首先for的代码形式是:

for %i in (set) do command

这里面有一些小知识知识点;

比如说i是变量,那么i可以换成其他字符吗?答案是可以的。但是必须是26个字母中的其中一个。

其中批处理是区分大小写的。

for %i in (set) 与for %I in (set) 是不同的。

其中(set) 是一个集合,每个元素之间,可以用空格、跳格、逗号、分号或等号分隔;

然后一个极为关键的地方在于:

在cmd窗口中:for %I in (command1) do command2
在批处理文件中:for %%I in (command1) do command2

因为我们是开发人员,为了方便,还是选择第二种匹处理形式。

下面介绍for的一些用法和给与一个例子做练习。

for /L

FOR /L %%i IN (1, 1, 10) DO (
echo %%i
)

那么它会循环。

命令格式为:

FOR /L %%i IN (start, step, end) DO (

)

解释这个L是loop的意思。

for /F

FOR /F "tokens=1* delims=," %%a IN (a.txt) DO (
echo %%a %%b
)

a.txt

good,notgood
do,notdo

delim 是通过什么格式来切割行。

比如说good,notgood,这里是通过,进行切割。

tokens 是切割取那些元素,比如1-5,那么就是取1到5,这里的1*取1和后面全部作为一个整体,不再进行分割。

来看下结果:

来看其他两个参数:

FOR /F "eol=d tokens=1* delims=," %%a IN (a.txt) DO (
echo %%a %%b
)

eol 是过滤那些行,我这里过滤d开头的行。

这样就ok了。

FOR /F "skip=1 tokens=1* delims=," %%a IN (a.txt) DO (
echo %%a %%b
)

skip 是跳过几行,我这里是跳过第一行就不贴了。

下面是/f 的命令格式。

FOR /F "eol=end_of_line, skip=num_of_lines, delims=delimiter, tokens=tokens " %%i IN (set) DO (

)

注:

delims默认值是空格和跳格键,tokens 默认值是1,eol是:

for /d

@echo off
for /d %%i in (c:/*) do echo %%i
pause

查询c目录所有目录,不包括子目录。

for /r

FOR /R c:/ %%i IN (*.exe) DO (
echo %%i
)

查询c目录下所有的exe 文件,你懂得,挖地形式的寻找全部。

例子

A1:假设令 set str=I love,bbs;bathome=net,请分别显示出I、love、bbs、bathome和net这五个字符串。目的:了解for语句用到了哪些符号作为元素的分隔符。

A2:条件同A1,要求最后只显示net这个字符串。目的:了解for语句的执行流程。

A1:

@echo off
set str="I love,bbs;bathome=net"
FOR /f "tokens=1-5 delims=,;= " %%a IN (%str%) DO (
echo %%a %%b
)
pushd

A2:

@echo off
set str="I love,bbs;bathome=net"
FOR /f "tokens=1,* delims==" %%a IN (%str%) DO (
echo %%b
)
pushd

别人给出的答案,不用for

A1:
[Code]
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do echo %%i
pause>nul [Result]
I
love
bbs
bathome.net [Discussion]
说明for语句将“空格、逗号、分号、等号”视作元素分隔符 A2:
[Code]
@echo off
set str=I love,bbs;bathome.net
for %%i in (%str%) do (set a=%%i)
echo %a%
pause>nul
显示输出最后一个。
[Result]
bathome.net

上面是有问题的,不会用.进行切割。

答案后续补齐,有点事出去一下。

批处理for 的理解及例子的更多相关文章

  1. AngularJS transclude 理解及例子

    一.概念理解 transclude可以在指令中让使用者自定义模板,也就是说,指令中模板的一部分,让指令的使用者动态指定:与指定中的Scope属性值为{}时候的作用类似,scope属性让指令使用者动态制 ...

  2. Java ClassLoader加载机制理解 实际例子

    针对 Java ClassLoader加载机制理解, 做了个如何自定制简单的ClassLoader,并成功加载指定的类. 不废话,直接上代码. package com.chq.study.cl; im ...

  3. 关于SendMessage和PostMessage的理解的例子

    对于SendMessage 和 PostMessage 平时口头的解释是 SendMessage 发送消息后等待返回, PostMessage 发送消息后立即返回 . 但是这样解释还是不具体,什么叫等 ...

  4. Java多线程学习——死锁的一个容易理解的例子

    发生死锁的情况:多个线程需要同时占用多个共享资源而发生需要互相死循环等待的情况 public class Mirror { //镜子 } public class Lipstick { //口红 } ...

  5. [20171225]变态的windows批处理4.txt

    [20171225]变态的windows批处理4.txt --//昨天学习windows 批处理的echo &.使用它可以实现类似回车换行的功能.例子: 1.echo &.R:\> ...

  6. MapReduce与批处理------《Designing Data-Intensive Applications》读书笔记14

    之前的文章大量的内容在和大家探讨分布式存储,接下来的章节进入了分布式计算领域.坦白说,个人之前专业的重心侧重于存储,对许多计算的内容理解可能不是和确切,如果文章中的理解有所不妥,愿虚心赐教.本篇将和大 ...

  7. [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍

    绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...

  8. OpenStack中Keystone的基本概念理解

    原文http://www.kankanews.com/ICkengine/archives/10788.shtml Keystone简介 Keystone(OpenStack Identity Ser ...

  9. 【CSS3】 理解CSS3 transform中的Matrix(矩阵)

    理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...

  10. 理解CSS3 transform中的Matrix(矩阵)

    一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...

随机推荐

  1. Android---Android Studio项目目录结构分析.

    1. .gradle 和.idea 这两个目录下放置的都是 Android Studio 自动生成的一些文件,我们无须关心,也不要去手 动编辑. 2. app 项目中的代码.资源等内容几乎都是放置在这 ...

  2. python删除指定文件夹下文件和文件夹的方法

    前记   python删除指定文件夹下的文件,是一个常用的功能.我找了不少地方,一直没有找到合适的模版,那只好自己倒腾一个比较实用的模版了. 基本模块   这里面会用到几个模块,一个是目录下所有文件的 ...

  3. Android自定义View学习(1)——基础知识介绍

    原文:Android自定义View学习(1)--基础知识介绍 - Stars-One的杂货小窝 准备学习自定义View,介绍一下先了解了下相关的前置基础知识,特此总结 本系列集合文章链接可访问Andr ...

  4. Tomcat错误之java.lang.OutOfMemoryError:PermGen space解决方案

    公司的站点是跑在Tomcat环境下的,运行一段时间后,有时会报这样的错误:java.lang.OutOfMemoryError: PermGen space 在网上查询了一下,大部分都说是jvm虚拟机 ...

  5. 记一次 .NET某游戏后端API服务 CPU爆高分析

    一:背景 1. 讲故事 前几天有位朋友找到我,说他们的API服务程序跑着跑着CPU满了降不下去,让我帮忙看下怎么回事,现在貌似民间只有我一个人专注dump分析,还是申明一下我dump分析是免费的,如果 ...

  6. ubuntu18.04如何运行.exe文件

    在Ubuntu上安装Wine 到wine官网查看的安装步骤 如果您之前安装过来自其他仓库的 Wine 安装包,请在尝试安装 WineHQ 安装包之前删除它及依赖它的所有安装包(如:wine-mono. ...

  7. Python机器学习笔记:CART算法实战

    完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote 前言 在python机 ...

  8. AntSK 0.2.3 版本更新:轻松集成 AI 本地离线模型

    大家好,今天和大家分享 AntSK 知识库/智能体项目的最新进展. AntSK 是一个基于 .Net 8.Blazor 及 SemanticKernel 开发的 AI 项目,旨在为开发者提供一个强大的 ...

  9. 基于quartus的高级时序分析

    基于quartus的高级时序分析 一.派生时钟和异步存储器 派生时钟就是和独立时钟存在频率或者相位关系的时钟,异步存储器就是具有存储读写异步功能的存储器.在时序分析中,这两个部分的静态时序分析是需要设 ...

  10. kingbaseES sql 优化技巧汇总

    1.整体思路 针对业务系统的出现的慢sql 我们的优化步骤大概分为以下几步 1.识别高负载语句 2.收集性能相关的数据 3.确定性能问题产生的原因 4.实施优化手段 下面我们针对这几个步骤展开进行讲解 ...