Windows批处理:命令for
一、基本用法
FOR %variable IN (set) DOcommand [command-parameters]
%variable 指定一个单一字母可替换的参数 。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters 为特定命令指定参数或命令行开关。
需要注意:
①、在批处理程序中使用 FOR 命令时,使用 %%variable;在命令行中,使用%variable。
②、变量variable 可以是26个字母中的任何一个,但是区分大小写的,A 与a会被认为是不同的变量。
③、IN和DO之间的set的括号不能省略,set表示字符串或者变量的集合,其中的元素可以用空格、tab键、逗号、分号和等号等分隔。
④、set可以使用通配符,比如*.*表示所有文件,*.bat表示所有.bat文件,???.bat表示3个字符文件名的文件
⑤、for语句依次提取set中的每一个元素,把它的值赋予形式变量variable ,然后执行do后的command 命令。
@echo off
for %%V in (This is,a;for=test) do echo %%Vs
pause
执行结果:
This
is
a
for
test
请按任意键继续. . .
二、计数循环
FOR /L %variable IN (start,step,end) DO command [command-parameters]
start 初始值;step 步进值;end 终止值
需要注意:
①、step步进值不能为零
②、step步进值为正数时,start初始值不能大于end终止值
③、step步进值为负数时,start初始值不能小于end终止值
@echo off
for /L %%v in (1,2,10) do echo 第%%v次
echo.
for /L %%v in (5,-3,-5) do echo 第%%v次
pause
执行结果:
第1次
第3次
第5次
第7次
第9次第5次
第2次
第-1次
第-4次
请按任意键继续. . .
三、遍历第一层目录
FOR /D %variable IN (set) DO command [command-parameters]
需要注意:
若集合set中有通配符时,只会匹配文件夹,不会匹配文件。
若集合set中没有通配符时,FOR %variable IN (set) DO command [command-parameters]的用法是一致的。
@echo off
for /D %%d in (test) do echo %%d
echo ---分割---
for /D %%d in (test*) do echo %%d
pause
执行结果:
test
---分割---
testdir
请按任意键继续. . .
四、遍历目录树
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
遍历path及其之下的所有子目录,对这些文件夹执行command的命令。
如果省略了path,默认为当前目录。
1、列举出当前目录及其子目录
@echo off
echo 当前目录 %CD%
for /r %CD% %%d in (.) do echo %%d
pause
执行结果:
当前目录 E:\Workspace\SourceCode\bat
E:\Workspace\SourceCode\bat\.
E:\Workspace\SourceCode\bat\help\.
E:\Workspace\SourceCode\bat\testdir\.
2、列举指定目录及其子目录中的指定后缀(如.bat)的文件(以.bat结尾的文件夹不会被列出)
@echo off
for /r %%d in (*.bat) do echo %%d
pause
执行结果:
E:\Workspace\SourceCode\bat\0help.bat
E:\Workspace\SourceCode\bat\1.bat
E:\Workspace\SourceCode\bat\10for.bat
E:\Workspace\SourceCode\bat\2.bat
E:\Workspace\SourceCode\bat\3.bat
E:\Workspace\SourceCode\bat\4echo.bat
E:\Workspace\SourceCode\bat\temp.bat
E:\Workspace\SourceCode\bat\testdir\temp.bat
请按任意键继续. . .
3、列举出指定目录及其所有的子目录,对所有目录路径后添加集合中的元素,然后执行command中的命令。
@echo off
echo 当前目录 %CD%
for /r %CD% %%d in (dir1 dir2) do echo %%d
pause
执行结果:
当前目录 E:\Workspace\SourceCode\bat
E:\Workspace\SourceCode\bat\dir1
E:\Workspace\SourceCode\bat\dir2
E:\Workspace\SourceCode\bat\help\dir1
E:\Workspace\SourceCode\bat\help\dir2
E:\Workspace\SourceCode\bat\test.bat\dir1
E:\Workspace\SourceCode\bat\test.bat\dir2
E:\Workspace\SourceCode\bat\testdir\dir1
E:\Workspace\SourceCode\bat\testdir\dir2
请按任意键继续. . .
五、文本解析
FOR /F [“options”] %variable IN (file-set) DO command [command-parameters]
FOR /F [“options”] %variable IN (“string”) DO command [command-parameters]
FOR /F [“options”] %variable IN (‘command’) DO command [command-parameters]
或者,如果有 usebackq 选项:
FOR /F [“options”] %variable IN (”file-set“) DO command [command-parameters]
FOR /F [“options”] %variable IN (‘string’) DO command [command-parameters]
FOR /F [“options”] %variable IN (`command`) DO command [command-parameters]
需要注意:
①、for /F 语句是以行为单位处理文件文件的
②、options主要有以下同个关键字:eol(忽略指定字符开关的行,默认字体为分号;)、
skip(忽略指定的行数,默认为0)、
delims(以指定的符号分割行成几节,默认为空格或tab)、
tokens(指定提取行分割成的元素)、
usebackq(为了兼容文件名中所带的空格或&)
③、options每个关键字之间需要加空格
先准备一个文本:
登黄鹤楼
昔人已乘黄鹤去,此地空余黄鹤楼。
黄鹤一去不复返,白云千载空悠悠。
晴川历历汉阳树,芳草萋萋鹦鹉洲。
日暮乡关何处是,烟波江上使人愁。twinkle,twinkle,little star,
How I wonder what you are?
Up above the world so high,
Like a diamond in the sky.:这是一个冒号号
;这是一个分号
1、使用默认值处理文本
@echo off
for /f %%r in (test.txt) do echo %%r
pause
执行结果:
登黄鹤楼
昔人已乘黄鹤去,此地空余黄鹤楼。
黄鹤一去不复返,白云千载空悠悠。
晴川历历汉阳树,芳草萋萋鹦鹉洲。
日暮乡关何处是,烟波江上使人愁。
twinkle,twinkle,little
How
Up
Like
:这是一个冒号号
请按任意键继续. . .
结果分析:每一行从非空格或tab的字符开始根据空格分割成1、2、3.。。。N节,如果没有空格,保持不变;
然后显示出第一行的第一节;处理行时会忽略分号;开关的行。
2、指定忽略以冒号开关
@echo off
for /f "eol=:" %%r in (test.txt) do echo %%r
pause
执行结果:
登黄鹤楼
昔人已乘黄鹤去,此地空余黄鹤楼。
黄鹤一去不复返,白云千载空悠悠。
晴川历历汉阳树,芳草萋萋鹦鹉洲。
日暮乡关何处是,烟波江上使人愁。
twinkle,twinkle,little
How
Up
Like
;这是一个分号
请按任意键继续. . .
3、指定以中文逗号分割每行
@echo off
for /f "eol=: delims=," %%r in (test.txt) do echo %%r
pause
执行结果:
登黄鹤楼
昔人已乘黄鹤去
黄鹤一去不复返
晴川历历汉阳树
日暮乡关何处是
twinkle,twinkle,little star,
How I wonder what you are?
Up above the world so high,
Like a diamond in the sky.
;这是一个分号
请按任意键继续. . .
4、定点提取每行第二节元素
@echo off
for /f "eol=: delims=, tokens=2" %%r in (test.txt) do echo %%r
pause
执行结果:
此地空余黄鹤楼。
白云千载空悠悠。
芳草萋萋鹦鹉洲。
烟波江上使人愁。
请按任意键继续. . .
5、定点提取每行第1、3至5节元素
需要注意:tokens指定N节,command中需要有N个对应的变量;变量是从形式变量开始,向上递增的,如形式变量为%%r,那么其它对应的变量只能是%%s %%t %%u
@echo off
for /f "eol=: tokens=1,3-5" %%r in (test.txt) do echo %%r %%s %%t %%u
pause
执行结果:
登黄鹤楼
昔人已乘黄鹤去,此地空余黄鹤楼。
黄鹤一去不复返,白云千载空悠悠。
晴川历历汉阳树,芳草萋萋鹦鹉洲。
日暮乡关何处是,烟波江上使人愁。
twinkle,twinkle,little
How wonder what you
Up the world so
Like diamond in the
;这是一个分号
请按任意键继续. . .
6、每行根据中文逗号分割成两节
@echo off
for /f "eol=: delims=, tokens=1,*" %%r in (test.txt) do echo %%r %%s
pause
执行结果:
登黄鹤楼
昔人已乘黄鹤去 此地空余黄鹤楼。
黄鹤一去不复返 白云千载空悠悠。
晴川历历汉阳树 芳草萋萋鹦鹉洲。
日暮乡关何处是 烟波江上使人愁。
twinkle,twinkle,little star,
How I wonder what you are?
Up above the world so high,
Like a diamond in the sky.
;这是一个分号
请按任意键继续. . .
结果分析 : 可以看到,诗中的中文逗号都不见了。这是因为每行根据中文逗号分割成两节,第二节赋给了*号。
7、以英文逗号分割成两节,跳过前6行
@echo off
for /f "delims=, skip=6 tokens=1,*" %%r in (test.txt) do echo %%r %%spaus
执行结果:
twinkle twinkle,little star,
How I wonder what you are?
Up above the world so high
Like a diamond in the sky.
;这是一个分号
请按任意键继续. . .
Windows批处理:命令for相关推荐
- Windows批处理命令学习
Windows批处理命令学习一 Windows的批处理命令固然比不上unix的shell脚本强大,但用好了仍能给我们的工作带来很大作用.一个朋友问我为什么学习批处理命令,我以<程序员修炼之道-- ...
- Windows批处理命令快速获取文件夹下特定类型的文件名(2022.5.15)
Windows批处理命令快速获取文件夹下特定类型的文件名 (2022.5.15) 1.需求分析 2.batch简介 3.代码实现 3.1 八种编程语言分别实现 3.1.1 C# 实现 3.1.2 C+ ...
- 指定路径列表批量拷贝文件+Windows批处理命令大全
一.指定路径列表批量拷贝Windows文件 cat.bat @echo off set target = '' mkdir samples setloacal enabledelayedexpanss ...
- 服务器bat脚本删除空文件夹,windows批处理命令(1)——右键清理空文件夹
日常学习工作免不了使用电脑,而作为一个强迫症,看到电脑中有空文件及其不爽: 再加上使用一些Git工具时含空文件不允许提交,因此就寻思着可不可以写一个脚本直接一键清理空文件夹. 最终实现的效果如下: 最 ...
- Windows批处理命令学习笔记(1)
转自:http://blog.csdn.net/clever101 Windows的批处理命令固然比不上unix的shell脚本强大,但用好了仍能给我们的工作带来很大作用.一个朋友问我为什么学习批处理 ...
- windows批处理命令教程
原文地址:http://www.cnblogs.com/phyllis/archive/2011/05/19/2051131.html 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义: ...
- 【转载文章】windows批处理命令教程_____附加自己学习笔记
https://www.jb51.net/article/41322.htm 批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd. 在命令提示下键入批处理文件 ...
- windows批处理命令通过修改注册表快捷开关Internet代理
在公司上网很不爽,因为在公司要接入外网的时候需要设置一下internet代理,回到公寓以后又要把代理关掉才好,于是感觉很麻烦就萌生起了写个小脚本来开关internet代理,脚本很简单,使用window ...
- Windows学习总结(11)——Windows批处理命令编写代码及小程序简介
批处理(Batch)也称为批处理脚本.顾名思义,就是对某对象进行批量的处理.DOS批处理是基于DOS命令,用来自动地批量地执行DOS命令以实现特定操作的脚本.批处理是一种简化的脚本语言,它应用于DOS ...
- windows批处理命令总结(超详细滴)
总结自: https://baike.baidu.com/item/%E6%89%B9%E5%A4%84%E7%90%86/1448600?fr=aladdin 文件夹管理 cd 显示当前目录名或改变 ...
最新文章
- [JavaScript] 探索JS中的函数秘密
- Web 服务器-Apache详解
- python解释器哪一年_Python即Python解释器的发展史
- 【项目实战】vue+springboot项目使用富文本编辑器实现长文章发表和展示
- 腾讯财报中“最大秘密”:2018云收入91亿元,交首份TO B答卷
- overleaf入门
- 荣耀赵明评苹果发布会掉队5G:意料之中 情理之外
- python教程视频哪个好-Python 基础视频教程那个好?
- 3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇
- C++ 类型转换归纳
- C++洛谷题解(1)
- 关于照片(img)的水平居中和垂直居中
- android 添加蒙版实现护眼模式(夜间模式)
- 视频转mp4格式转换器如何把其他格式的视频转换成mp4格式
- 科目二考试的只言片语
- 2021-05-05 数组、 元组、字典、字符串常见操作
- 统计学 假设检验(Hypothesis Testing)
- matlab学习—分段函数计算
- 计蒜客T1003输出字符菱形
- jenkins提示没有这个文件: ‘pom.xml‘
热门文章
- c语言中 n的意义,\n\n在c语言中是什么意思?_后端开发
- 大型网站优化方案思路技巧总结
- php程序解压的目录在哪,PHP可以解压taz文件吗? (.tar.Z的)
- 那个人总有一天会爱你
- android手机号码恢复,安卓手机通讯录怎么恢复?教你恢复小妙招
- 【Mybatis】Mapper文件中sql不等于的写法
- C#中枚举和结构解释(少儿版)
- python列表元素筛选_Python如何筛选序列中的元素
- 【博学谷学习记录】超强总结,用心分享|人工智能第一课Python的认识与环境搭建。
- 电商网站怎么挑选高防服务器防御恶意攻击