bat命令之for命令详解

BAT命令之FOR命令详解

BAT是Windows操作系统中常用的脚本语言,常常用于批量处理文件、运行程序等。其中,FOR命令是BAT脚本中非常强大的一个命令,可以用于循环处理、批量操作等。本文将详细介绍FOR命令的各种用法。

基本语法

FOR命令的基本语法如下所示:

for %variable in (set) do command

其中,%variable表示遍历过程中使用的变量名,set是一组用空格隔开的元素,command是在每个元素上执行的命令。set可以包含多个元素,每个元素可以是字面值、文件名、文件夹名、通配符等。

常见用法

遍历当前目录下的所有文件

for %f in (*) do echo %f

这条命令将遍历当前目录下的所有文件,并将文件名输出到控制台。*通配符表示所有文件,将会枚举当前目录下的所有文件。

遍历指定路径下的所有文件

for %f in (C:\myfile\*) do echo %f

这条命令将遍历C:\myfile目录下的所有文件,并将文件名输出到控制台。同样使用了*通配符。

遍历多个路径下的所有文件

for %f in (C:\myfile\*, D:\myfiles\*) do echo %f

这条命令将遍历C:\myfileD:\myfiles目录下的所有文件,并将文件名输出到控制台。将多个路径用,隔开即可。

遍历指定类型的文件

FOR %f IN (*.txt) DO echo %f

这条命令将遍历当前目录下所有.txt文件,并将文件名输出到控制台。.txt表示文件类型,可以替换为其他的文件类型。

遍历一段数字

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

这条命令将遍历数字1~5,并将数字依次输出到控制台。/L表示for命令拓展为“List”(列举),1,1,5表示从1开始,每次增加1,直到5结束。

遍历所有子目录

FOR /R "C:\mydir" %%f IN (*) DO echo %%f

这条命令将遍历C:\mydir及其子目录下的所有文件,并输出文件名。/R表示递归地列出子目录中的文件。

高级用法

内嵌FOR循环

FOR %%i IN (A,B,C) DO (
    FOR %%j IN (1,2,3) DO (
        echo %%i %%j
    )
)

这条命令包含两个嵌套的for循环。外层循环遍历字母A~C,内层循环遍历数字1~3。每次遍历都会输出一个字母和一个数字,最终输出结果如下:

A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3

将结果赋值给变量

SETLOCAL EnableDelayedExpansion
SET COUNT=0
FOR /f %%a IN ('dir /b "C:\mydir" ^| find /v /c ""') DO SET FILES=%%a
FOR /R "C:\mydir" %%f IN (*) DO (
    SET /A COUNT+=1
    SET PROGRESS=!COUNT! / !FILES!
    ECHO !PROGRESS!
)
ENDLOCAL

这条命令将统计C:\mydir及其子目录下的文件总数,然后在遍历的时候将进度输出。SETLOCAL EnableDelayedExpansion表示开启延迟变量扩展,SET COUNT=0表示初始化计数变量。FOR /f %%a IN ('dir /b "C:\mydir" ^| find /v /c ""') DO SET FILES=%%a表示用dir命令列出C:\mydir下的文件列表,然后用find命令统计行数并赋值给FILES变量。FOR /R "C:\mydir" %%f IN (*) DO表示递归地遍历C:\mydir下的文件,每次遍历时累加COUNT变量并计算进度,最终输出结果。

总结

本文介绍了FOR命令的基本语法和常见用法,同时也提供了一些比较实用的高级用法。通过掌握FOR命令的各种用法,可以方便地进行文件遍历、批量操作等任务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:bat命令之for命令详解 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • idea启动不了卡死

    Idea启动不了卡死 如果你在启动IntelliJ IDEA时卡死,可能会感到非常困扰。解决这个问题的方法有很多,这篇文章将向你介绍一些常见的解决方案。 方法一:删除系统缓存 在某些情况下,启动Idea会产生缓存问题。为了解决这个问题,你可以尝试删除Idea的系统缓存。实施步骤如下: 关闭Idea 打开系统文件浏览器并转到系统缓存目录。默认目录位置如下: W…

    其他 2023年3月28日
    00
  • vue使用Split封装通用拖拽滑动分隔面板组件

    下面我来详细讲解 “Vue 使用 Split 封装通用拖拽滑动分隔面板组件” 的完整攻略。 1. Split 拖拽滑动分隔面板组件 Split 是一个基于 Vanilla JavaScript 的库。它提供了一个灵活的、无依赖的、易于使用的分隔面板组件,可垂直或水平地拖拽滑动。 2. 安装 Split 我们可以使用 npm 安装 Split: npm ins…

    other 2023年6月25日
    00
  • matlabr2017b安装及破解(安装详解)

    matlabr2017b安装及破解(安装详解) 介绍 MATLAB 是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。作为matlab的用户,不少人会遭遇到安装matlab的一些问题,比如安装失败、破解不了等等。本文将对MATLAB R2017b的安装过程进行详解,帮助大家解决安…

    其他 2023年3月28日
    00
  • c#中dllimport用法

    C#中DllImport用法 在C#中,DllImport(Dynamic Link Library Import)是用来访问动态链接库(DLL)中导出函数的方法。DllImport通常用于调用在DLL中实现的非托管函数,它可以将C#中的方法定义和DLL中的函数定义连接起来。使用DllImport,我们可以方便地在C#中调用C或C++实现的代码。 声明Dll…

    其他 2023年3月29日
    00
  • macOS Big Sur 11.0.1修订版更新 固件内部版本号为20B50

    macOS Big Sur 11.0.1修订版更新攻略 概述 macOS Big Sur 11.0.1修订版是苹果公司发布的最新操作系统版本。该版本的固件内部版本号为20B50。本攻略将详细介绍如何进行该修订版的更新。 步骤 备份数据:在进行任何操作系统更新之前,建议您备份重要的数据。这样可以确保在更新过程中不会丢失任何文件或设置。 连接到互联网:确保您的设…

    other 2023年8月2日
    00
  • 深入剖析——float之个人见解

    深入剖析——float之个人见解 什么是float 在CSS中,float是一种常见的布局方式。具体来说,float可以使元素“浮动”起来,从而脱离正常的文档流,并可以围绕着其他元素排列。在网页中常常用来实现两栏式、三栏式等布局方式。 float属性有以下几个取值: left:将元素向左浮动 right:将元素向右浮动 none:元素不浮动(默认值) inh…

    其他 2023年3月28日
    00
  • QT实现串口通信的完整步骤

    下面是QT实现串口通信的完整步骤: 1. 准备工作 在开始实现串口通信前,我们需要做一些准备工作: 安装QT库; 找到自己要使用的串口,并将其连接到电脑; 确定需要交换的串口数据格式; 2. 创建QT工程 下一步需要创建一个QT工程,这里我们使用QT Creator来创建一个新的控制台应用程序工程。在工程创建之后,可以前往“工程配置”菜单中,勾选上“使用外部…

    other 2023年6月26日
    00
  • 一文搞懂Spring中Bean的生命周期

    一文搞懂Spring中Bean的生命周期 什么是Bean的生命周期 Bean生命周期指的是Bean对象从创建到销毁的整个过程。在Spring容器中,Bean的生命周期可以通过Spring提供的接口来管理和控制。 Bean的生命周期过程 Spring容器管理Bean实例的生命周期,其主要的生命周期过程分为以下8个阶段: 实例化Bean对象:Spring通过无参…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部