批处理--for使用(持续更新中。。。)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44390640/article/details/100009229

1 for 语句
显示当前目录下txt文件:
FOR %%variable IN (set) DO command [command-parameters]

@echo off
for %%i in (*.txt) do  echo %%i
pause

结果:
在这里插入图片描述

2 for /f用法

1)for /f %%i in (文件名) do (……)
 2)for /f %%i in (‘命令语句’) do (……)
 3)for /f %%i in (“字符串”) do (……)

1、for /f
显示TEXT.TXT内容

@echo off
for /f %%i in (test.txt) do echo %%i
pause

2、分割、切片"delims= " 用法,主要用于提取第1节内容
以,号分割TXT文件,下表是提取,号前的字段

echo off
for /f "delims=," %%i in (test.txt) do echo %%i
pause

源TEST.TXT内容:
我是一个学生,我今年20岁,家住广州.
你是一个好人!谢谢。

执行结果:
在这里插入图片描述

3、tokens= 数字 用法
前面提到"delims= "只能提取第1节的字段,当想提取中间或最后一节,需要用到"tokens= "只能跟数字,代表第1、2、3节意思,如tokens= 2代表,第2节。
PS:若同时选择多节,请在使用:在…tokens=2,3…ecnho %%i %%j…

@echo off
for /f  "delims=, tokens=2" %%i  in (TEST.TXT) do echo %%i
pause

运行结果:
在这里插入图片描述

4、 skip=n用法

for /f 允许跳过无用的行,直接从第N+1行开始处理,参数 skip=n,其中,n是一个正整数,表示要跳过的行数。

echo off
for /f "skip=2" %%i in (TEST.TXT) do echo %%i
pause

5、eol= 用法
忽略以指定字符打头的行:

echo off
for /f "eol=," %%i in (TEST.TXT) do echo %%i
pause

6、变量延迟
setlocal enabledelayedexpansion
统计并显示当前目录下TXT文件数
"dir /ad /b /s“路径

@echo off

setlocal enabledelayedexpansion
set num=0
for /f %%i in ('dir /a-d /b *.txt') do (
           set /a      num+=1 
          echo num !num!)
echo 当前目录下一共有  %num% 个TXT文件
pause

3 for /L
循环执行

echo off
for /l %%i in (1,1,10) do echo ok
pause

4 FINDSTR查找

在文件中寻找字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /B         在一行的开始配对模式。
  /E         在一行的结尾配对模式。
  /L         按字使用搜索字符串。
  /R         将搜索字符串作为正则表达式使用。
  /S         在当前目录和所有子目录中搜索匹配文件。
  /I         指定搜索不分大小写。
  /X         打印完全匹配的行。
  /V         只打印不包含匹配的行。
  /N         在匹配的每行前打印行数。
  /M         如果文件含有匹配项,只打印其文件名。
  /O         在每个匹配行前打印字符偏移量。
  /P         忽略有不可打印字符的文件。  
  /OFF[LINE] 不跳过带有脱机属性集的文件。
  /A:attr    指定有十六进位数字的颜色属性。请见 "color /?"
  /F:file    从指定文件读文件列表 (/ 代表控制台)。
  /C:string  使用指定字符串作为文字搜索字符串。
  /G:file    从指定的文件获得搜索字符串。 (/ 代表控制台)。
  /D:dir     查找以分号为分隔符的目录列表
  strings    要查找的文字。
  [drive:][path]filename
             指定要查找的文件。

除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
"there"。'FINDSTR /C:"hello there" x.y' 文件 x.y  寻找
"hello there"。

正则表达式的快速参考:
  .        通配符: 任何字符
  *        重复: 以前字符或类出现零或零以上次数
  ^        行位置: 行的开始
  $        行位置: 行的终点
  [class]  字符类: 任何在字符集中的字符
  [^class] 补字符类: 任何不在字符集中的字符
  [x-y]    范围: 在指定范围内的任何字符
  \x       Escape: 元字符 x 的文字用法
  \<xyz    字位置: 字的开始
  xyz\>    字位置: 字的结束

echo off
 findstr /b /i "OptionalFeatureLicenseId"  *.log>>test.txt
pause

猜你喜欢

转载自blog.csdn.net/qq_44390640/article/details/100009229
今日推荐