zoukankan      html  css  js  c++  java
  • DOS批处理高级教程(二) DOS循环: 语句命令FOR、IF

    前言

    前面我们已经熟悉了基本的命令和基本符号, 对简单的DOS批处理脚本都已经有了初步的了解, 本节, 我们来讲述FOR命令用法及相关的实例, 写出更好的、可视性更强的脚本。

    上一章的链接
    DOS批处理高级教程(一) 批处理基础

    第二章 FOR命令详解

    一、基本格式

    FOR %%variable IN (set) DO command [command-parameters]

    下面的各自参数, 就不加赘述了, 直接通过实例描述运行理解。

    二、参数 /d 主要搜索匹配目录

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

    三、参数 /R 搜索指定目录树中的匹配文件

    @echo off
    for /d %%i in (???) do echo %%i
    pause

    枚举C盘下所有的 .exe 程序, 如果不带c: 则表示为当前目录

    @echo off
    for /r c: %%i in (*.exe) do echo %%i
    pause

    四、参数 /L 按数字序列(start,step,end)循环

    有过编程经验, 知道lispace, 或者 seq 的 知道这个列表推导式是什么了

    @echo off
    for /l %%i in (1,1,5) do @echo %%i
    pause

    五、参数 /F 处理命令输出、字符串及文件内容

    迭代及文件解析
    使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。
    文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。然后通过设置为令牌的迭代变量值,调用 for 循环。默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。

    @echo off
    rem 首先建立临时文件test.txt
    echo ;注释行,这是临时文件,用完删除 >test.txt
    echo 111213141516段 >>test.txt
    echo 21段,22段,23段,24段,25段,26段 >>test.txt
    echo 31段-32段-33段-34段-35段-36段 >>test.txt
    FOR /F "eol=; tokens=1,3* delims=,- " %%i in (test.txt) do echo %%i %%j %%k
    Pause
    Del test.txt
    
    '''-> demo2.bat'''
    @echo off
    FOR /F "eol= delims=" %%i in (test.txt) do echo %%i
    Pause
    
    '''demo3.bat '''
    @echo off
    FOR /F "delims=" %%i in ('net user') do @echo %%i
    pause

    第三章 FOR命令中的变量

    都不一一列举了, 都根据格式试验下即可。 另外也可以在控制台中查询。

    一、 ~I - 删除任何引号(“),扩展 %I

    FOR /F "delims=" %%i IN (temp.txt) DO echo  %%~i
    pause
    del temp.txt

    二、 %~fI - 将 %I 扩展到一个完全合格的路径名

    FOR /F "delims==" %%i IN ('dir /b') DO @echo  %%~fi
    pause

    三、 %~dI - 仅将 %I 扩展到一个驱动器号

    四、 %~pI - 仅将 %I 扩展到一个路径

    五、 %~nI - 仅将 %I 扩展到一个文件名

    六、 %~xI - 仅将 %I 扩展到一个文件扩展名

    七、 %~sI - 扩展的路径只含有短名

    八、 %~aI - 将 %I 扩展到文件的文件属性

    九、 %~tI - 将 %I 扩展到文件的日期/时间

    十、 %~zI - 将 %I 扩展到文件的大小

    十一、 %~$PATH:I

    第六章 IF命令讲解


    主要是熟悉, if和增强if即可; 前面已经举过不少例子了

    @echo off
    if not exist "c:	est" (echo 存在文件) ELSE echo 不存在文件
    pause
    
    //2
    @echo off
    set /p var=请输入一个数字:
    if %var% LEQ  4 (echo 我小于等于4) ELSE echo 我不小于等于4
    pause

    后记

    以后有相关非常好的脚本, 并且能充分表达出含义的补上, 目前没有这么多需求
    参考文章
    http://blog.csdn.net/lanbing510/article/details/7461073

    关于更深入的DOS批处理教程请看下一章, 都有大致了解, 回来查询相关命令并熟悉也不失为一个方法。

    DOS批处理高级教程(三) : 批处理变量和set命令详解
    本文链接:

    http://blog.csdn.net/mdeditor#!postId=59140530

  • 相关阅读:
    echarts统计图使用
    ecshop 后台 审核功能
    ecshop 后台时间调用
    ecshop 后台分页功能
    ecshop 实现购物车退出不清空
    通过Measure & Arrange实现UWP瀑布流布局
    UWP中的Direct2D
    微软颜龄 维护小记——布局的小智慧
    Win10 UWP开发中的重复性静态UI绘制小技巧 2
    Win10 UWP开发中的重复性静态UI绘制小技巧 1
  • 原文地址:https://www.cnblogs.com/actanble/p/6713422.html
Copyright © 2011-2022 走看看