关于批处理中FOR语句的使用说明与学习技巧

批处理 bat中的for命令的作用,非常的不错,可以节省很多效率,它可以读取文章的没一行,循环执行ping命令,老探索端口,学习批处理如果不学习for将是个遗憾,希望大家多看看for 命令的实际应用的例子,如果只看简单的基础的使用方法,而缺少实际应用的话,再多的基础也不成,一定先看实例再看基础,带着问题去看基础,相信很快大家就可以上手了,本站有不少这样的资源,大家可以搜下
下面我就把for命令的基本参数整理下,大家在学习的时候可以在dos下打for /?来查看帮助,大家都是这样过来的

For
对一组文件中的每个文件运行指定的命令。

语法
for{%Variable|%%Variable}in(Set)doCommand[CommandLineOptions]
参数
{%Variable|%%Variable}
必需。代表可替换的参数。使用%Variable通过命令提示符执行for命令。使用%%Variable在批处理
文件中执行for命令。变量要区分大小写,并且必须用Alpha值表示,例如,%A、%B或%C。

(Set)

必需。指定要用指定命令处理的一个或多个文件、目录、数值范围以及文本字符串。需要括号。

Command

必需。指定要对包括在指定的(Set)中每个文件、目录、数值范围或文本字符串所执行的命令。

CommandLineOptions

指定要与所指定命令一起使用的任何命令行选项。

/?

在命令提示符下显示帮助。

注释
•使用for

可以在批处理文件中或直接从命令提示符使用for命令。

•使用批处理参数

下列属性适用于for命令:

•for命令用Set中指定的每个文本字符串替换%Variable或%%Variable,直到Command处理完所有

文件为止。

•ForVariable名是区分大小写、全局的,并且每次活动的总共不超过52个。

•要避免混淆批处理参数%0到%9,可对Variable使用除数字0到9之外的任何字符。对于简单的

批处理文件,单个字符即可生效,例如%%f。

•在复杂的批处理文件中可以使用多个Variable值来区分不同的可替换变量。

•指定一组文件

Set参数可以代表单个或多个文件组。可以使用通配符(即*和?)指定文件组。以下为有效文件组:

(*.doc)

(*.doc*.txt*.me)

(jan*.docjan*.rptfeb*.docfeb*.rpt)

(ar??1991.*ap??1991.*)

在使用for命令时,Set中的第一个值代替%Variable或%%Variable,然后由指定的命令处理该值。

这会持续到处理完与Set值相对应的所有文件(或文件组)为止。

•使用in和do关键字

In和do不是参数,但必须将它们与for一起使用。如果省略其中任何一个关键字,就会出现错误消息

•使用for的其他格式

如果启用命令扩展(这是默认设置),则支持for的下列其他格式:

•仅目录

如果Set包含通配符(*和?),将对与Set相匹配的每个目录(而不是指定目录中的文件组)执行指

定的Command。语法是:

for/D{%%|%}Variablein(Set)doCommand[CommandLineOptions]

•递归

进入根目录树[Drive:]Path,在树的每个目录中执行for语句。如果在/R后没有指定目录,则认为是

当前目录。如果Set只是一个句点(.),则只枚举目录树。语法是:

for/R[[Drive:]Path]{%%|%}Variablein(Set)doCommand[CommandLineOptions]

•迭代数值范围

使用迭代变量设置起始值(Start#),然后逐步执行一组范围的值,直到该值超过所设置的终止值(End#)

。/L将通过对Start#与End#进行比较来执行迭代变量。如果Start#小于End#,就会执行该命令。

如果迭代变量超过End#,则命令解释程序退出此循环。还可以使用负的Step#以递减数值的方式逐步执

行此范围内的值。例如,(1,1,5)生成序列12345,而(5,-1,1)则生成序列(54321)。语法是

for/L{%%|%}Variablein(Start#,Step#,End#)doCommand[CommandLineOptions]

•迭代及文件解析

使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各

种ParsingKeywords选项进一步修改解析方式。使用ParsingKeywords令牌选项指定哪些令牌应该作为

迭代变量传递。请注意:在没有使用令牌选项时,/F将只检查第一个令牌。

文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多

个令牌。然后通过设置为令牌的迭代变量值,调用for循环。默认情况下,/F传递每个文件每一行的第

一个空白分隔符号。跳过空行。语法的不同点为:

for/F["ParsingKeywords"]{%%|%}Variabelin(FileNameSet)doCommand[CommandLineOptions]

for/F["ParsingKeywords"]{%%|%}Variablein("LiteralString")doCommand

[CommandLineOptions]

for/F["ParsingKeywords"]{%%|%}Variablein('Command')doCommand[CommandLineOptions]

FileNameSet参数指定一个或多个文件名称。每个文件都将被打开、读取和处理,然后再继续执行

FileNameSet中的下一个文件。要覆盖默认解析行为,请指定"ParsingKeywords"。这是一个引号括起来

的字符串,它包含一个或多个关键字以指定不同的解析选项。

如果使用usebackq选项,请使用如下语法之一:

for/F["usebackqParsingKeywords"]{%%|%}Variablein("FileNameSet")doCommand

[CommandLineOptions]

for/F["usebackqParsingKeywords"]{%%|%}Variablein('LiteralString')doCommand

[CommandLineOptions]

for/F["usebackqParsingKeywords"]{%%|%}Variablein('Command')doCommand

[CommandLineOptions]
本文出自非常批处理交流论坛,更多精彩文章请访问bbs.verybat.cn。

(0)

相关推荐

  • 终极dos批处理for循环命令详解

    格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令 作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果. 注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable,而不要用 %variable.变量名称是区分大小写的,所以 %i 不同于 %I. 关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f 下面分别解释一下 零:无参数时: FOR %variable IN (set) DO

  • dos命令for用法详解

    for帮助文档 对一组文件中的每一个文件执行某个特定命令. FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数. (set) 指定一个或一组文件.可以使用通配符. command 指定对每个文件执行的命令. command-parameters 为特定命令指定参数或命令行开关. 在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable.变量名称

  • dos下遍历目录和文件的代码(主要利用for命令)

    ===== 文件夹结构 ============================================= D:\test ---A Folder 1 |-----A file 1.txt |-----A file 2.txt |-----A file 3.txt ---B Folder 2 |-----B file 1.txt |-----B file 2.txt |-----B file 3.txt |---B Folder 3 |-----B sub

  • DOS 批处理命令For循环命令详解

    for命令是一种对一系列对象依次循环执行同一个或多个命令的在命令行或批处理中运行的命令,结合一些Windows管理中的程序后,其处理功能强大.应用灵活方便程度令人刮目相看.但是,其帮助信息也因此复杂往往令初学者望而生畏,这里根据本人的学习理解,把其用法分解简化,疏忽和错误也许在所难免. 基本格式 (这里写的是在命令行里用的格式,如果是在批处理中,需要把其中%再多加个%形成%%): for /参数 %变量 in (集) do 命令 (注:上面除中文的以外,其余的是按它的格式要求书写的,大小写都行)

  • dos之for命令实现扫描网段的端口,用于辅助解决ARP挂马

    不需要任何工具,dos命令扫描一个网段的全部端口!  在win2000下开一个dos窗口,然后执行  for /l %a in (1,1,254) do start /min /low telnet 192.168.0.%a 3389  这样192.168.0.x这个段的所有开放3389端口得主机都会暴露  这条命令执行后  会在任务栏开254个小窗口  然后telnet链接失败的窗口会在大约5秒后自动退出  剩下的窗口就是相对应开放端口的主机了  看一下小窗口的标题可以得知主机的ip地址  如

  • 关于批处理中FOR语句的使用说明与学习技巧

    批处理 bat中的for命令的作用,非常的不错,可以节省很多效率,它可以读取文章的没一行,循环执行ping命令,老探索端口,学习批处理如果不学习for将是个遗憾,希望大家多看看for 命令的实际应用的例子,如果只看简单的基础的使用方法,而缺少实际应用的话,再多的基础也不成,一定先看实例再看基础,带着问题去看基础,相信很快大家就可以上手了,本站有不少这样的资源,大家可以搜下下面我就把for命令的基本参数整理下,大家在学习的时候可以在dos下打for /?来查看帮助,大家都是这样过来的 For 对一

  • 批处理中setlocal enabledelayedexpansion的作用详细整理

    设置本地为延迟扩展.其实也就是:延迟变量,全称延迟环境变量扩展, 想进阶,变量延迟是必过的一关!所以这一部分希望你能认真看. 为了更好的说明问题,我们先引入一个例子. 例1: @echo off set a=4 set a=5&echo %a% pause 结果:4 解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?让我们先了解一下批处理运行命令的机制:批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处

  • cmd批处理中set /a和set /p的区别介绍

    在 SET 命令中添加了两个新命令行开关: SET /A expression SET /P variable=[promptString] /A 命令行开关指定等号右边的字符串为被评估的数字表达式.该表达式评估器很简单并以递减的优先权顺序支持下列操作: () - 分组 ! ~ - - 一元运算符 * / % - 算数运算符 + - - 算数运算符 << >> - 逻辑移位 - 按位"与" ^ - 按位"异" | - 按位"或&qu

  • 批处理中Copy与Xcopy命令的区别小结

    Copy与Xcopy的区别 一,copy不能在有子目录存在的文件中拷贝文件的同时重命名此文件名 说明,这里C:为根目录,bat为子目录),而xcopy能,不过会出现提示,当然可以加参数而不使它提示. 复制代码 代码如下: C:\>copy c:\bat\hai.bat d:\bat\hello.bat 提示:系统找不到指定的路径. 已复制         0 个文件. 可以这样: 复制代码 代码如下: C:\>copy c:\hai.bat d:\hell.bat 已复制         1

  • 浅谈Java多线程处理中Future的妙用(附源码)

    java 中Future是一个未来对象,里面保存这线程处理结果,它像一个提货凭证,拿着它你可以随时去提取结果.在两种情况下,离开Future几乎很难办.一种情况是拆分订单,比如你的应用收到一个批量订单,此时如果要求最快的处理订单,那么需要并发处理,并发的结果如果收集,这个问题如果自己去编程将非常繁琐,此时可以使用CompletionService解决这个问题.CompletionService将Future收集到一个队列里,可以按结果处理完成的先后顺序进队.另外一种情况是,如果你需要并发去查询一

  • 使用Windows批处理和WMI设置Python的环境变量方法

    大概在Python2.7.xx以前,安装Python时环境变量是需要自己设的,所以自己做了一个批处理文件.bat来设置环境变量Path,通过WMI命令wmic来实现. ::检查path中有没有相关路径 echo %path%|findstr /i "c:\python27\scripts"&&(goto run) ::先添加,防止没有时修改出错 wmic ENVIRONMENT create name="path",VariableValue=&qu

  • Java中stream处理中map与flatMap的比较和使用案例

    前言 使用Java8的新特性Stream流式处理,可以提高对于集合的一些操作效率,再配合lambda表达式,可以极致的简化代码,尤其还有并行流这个东东,可以去 了解一下,在一些场合还是可以提高效率的,而且编码起来也不费事. 并且流式处理的核心就是一个浅拷贝和引用管道,其内部实现了一个引用管道ReferencePipeline, 他把需要处理的数据的引用拷贝了一份,然后处理数据,最后收集结果也是将这些引用放到了另一个集合中. 今天要讲的就是stream处理中的map和flatMap这俩个的比较和使

  • Python之sklearn数据预处理中fit(),transform()与fit_transform()的区别

    目录 sklearn数据预处理中fit(),transform()与fit_transform()的区别 概述 举例 sklearn中归一化的坑 原因 总结 sklearn数据预处理中fit(),transform()与fit_transform()的区别 概述 注意这是数据预处理中的方法: Fit(): Method calculates the parameters μ and σ and saves them as internal objects. 解释:简单来说,就是求得训练集X的均值

  • C++编程异常处理中try和throw以及catch语句的用法

    若要在 C++ 中实现异常处理,你可以使用 try.throw 和 catch 表达式. 首先,使用 try 块将可能引发异常的一个或多个语句封闭起来. throw 表达式发出信号,异常条件(通常是错误)已在 try 块中发生.你可以使用任何类型的对象作为 throw 表达式的操作数.该对象一般用于传达有关错误的信息.大多数情况下,建议你使用 std::exception 类或标准库中定义的派生类之一.如果其中的类不合适,建议你从 std::exception 派生自己的异常类. 若要处理可能引

  • C#异常处理中try和catch语句及finally语句的用法示例

    使用 try/catch 处理异常 try-catch 块的用途是捕捉和处理工作代码所生成的异常. 有些异常可以在 catch 块中处理,解决问题后不会再次引发异常:但更多情况下,您唯一能做的是确保引发适当的异常. 示例 在此示例中,IndexOutOfRangeException 不是最适当的异常:对本方法而言 ArgumentOutOfRangeException 更恰当些,因为错误是由调用方传入的 index 参数导致的. class TestTryCatch { static int G

随机推荐