批處理 查找字符串


前言

findstr,全英文find string,意為“查找字符串”;

/b,全英文begin,意為“開始”;
/e,全英文end,意為“末端”;
/l,literally,意為“照字面地”;引申為“去正則表達式”。
/r,regular,意為“有規律的”;引申為“正則表達式”。
/s,subdirectory,意為“子目錄”;
/i,ignore,意為“忽略”;引申為“忽略大小寫”;
/x,exactly,意為“恰好地”;引申為“完全匹配”;(一開始意為不是這個單詞,不過HAT確實高明——之所以以e為縮寫,是因為前面有了end的縮寫,所以以第二個字母x為縮寫)。
/v,invert,意為“反轉、使顛倒”(感謝doupip的單詞提供);
/n,全英文number,意為“數字”;引申為“行號”;
/m,merely,意為“只是”;
/o,offset,意為“偏移”;
/p,print,意為“打印”;
/off[line],意為“脫機文件”;
/a,attribute,意為“屬性”;
/f,file,意為“文件”;
/c,case,意為“把幾個字加起來”;引申為“全部字匹配”;
/g,get,意為“獲得”;
/d,directory,意為“目錄”;
class,類。

實踐

沒有參數的時候

材料:

Hello World
Hello Boy
hello ,good man.
goodbye!
@echo off
findstr "man" a.txt

值得注意的是這個是區分大小寫的;

也就是說:

@echo off
findstr "Man" a.txt

是查找不到結果的。

那么如何不區分大小寫?

不區分大小寫

@echo off
findstr /i "Man" a.txt

顯示行數

@echo off
findstr /n /i "Man" a.txt

結果:

@echo off
findstr /n /i "Man" a.txt

再來介紹find:

@echo off
find /n "hello" a.txt


![](https://img2020.cnblogs.com/blog/1289794/202005/1289794-20200506143944844-867291616.png)

#### 查找那些文件中含有那些字符

@echo off
findstr /m /i "hello" *.txt


![](https://img2020.cnblogs.com/blog/1289794/202005/1289794-20200506144326394-1524166074.png)

#### 查找開頭元素和末尾元素

@echo off
find /n "^hello" a.txt


@echo off
find /n "hello$" a.txt

看過正則的都明白,不解釋了。

然后你要查找完全匹配的就是:
@echo off
find /n "^hello$" a.txt

查找不包含某個字符的行

使用 /v

@echo off
findstr /v /i "hello" a.txt

結果

G:\test>test.bat
goodbye!

當前目錄及子目錄下文件內容中包含某字符串的文件名

代碼:

findstr /ms "專業" *.txt

復制代碼

效果:
找出當前目錄及子目錄下文件內容中包含“專業”的文本文件,並只顯示其文件名。

總結

未完結,明天后續


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM