前言
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

#### 查找那些文件中含有那些字符
@echo off
findstr /m /i "hello" *.txt

#### 查找開頭元素和末尾元素
@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
復制代碼
效果:
找出當前目錄及子目錄下文件內容中包含“專業”的文本文件,並只顯示其文件名。
總結
未完結,明天后續