layout: post
title: Everything工具使用
categories: CommonTools
description: Everything工具使用
keywords:
url: https://lichao890427.github.io/ https://github.com/lichao890427/
??Everything是一款免費快速的文件搜索引擎,用于快速搜索特定名稱的文件和文件夾,在你輸入以后,瞬間會找到并顯示匹配列表,是超越win自帶搜索幾光年的神器。它的特點是:安裝文件體積小,用戶界面簡潔,快速文件索引及搜索,實時捕獲文件系統(tǒng)改變,支持正則表達(dá)式,系統(tǒng)資源消耗低,自動版本檢測及更新,還可以通過http ftp etp共享文件。支持windows 2000,xp, 2003, vista, 2008, windows 7, windows 8。官網(wǎng)www.voidtools.com 現(xiàn)在的版本是1.3,支持64位系統(tǒng),官網(wǎng)有他的命令行程序和用于第三方開發(fā)的api。目前Everything還不能搜索文件內(nèi)容。
??安裝everything,第一次使用時會建立數(shù)據(jù)庫,每次啟動時會檢查文件系統(tǒng)有沒有改變,首先為了方便使用,對everything作如下配置:
??工具->選項 打開Everything選項卡,常規(guī)中選擇語言,必要的時候會提示下載語言包。下面選擇“集成到資源管理器”
??常規(guī)->界面 選中“允許多個窗口”和“從系統(tǒng)托盤圖標(biāo)創(chuàng)建窗口”
????索引 數(shù)據(jù)庫路徑選擇一個路徑,比如C:\Users\Administrator
????接下來,對每個磁盤做如下操作:
??快捷鍵:ctrl+s 保存列表結(jié)果
??在欄目上右鍵可以選擇屬性,單擊排序
??先介紹搜索專用的特殊字符,這些字符大多是文件名中不能出現(xiàn)的特殊字符。
符號 | 解釋 | 例子 | 解釋 |
---|---|---|---|
空格 | 邏輯與 | li chao | 文件(夾)名中既含li又含chao |
邏輯或 | 1.txt | 2.txt | 文件名含1或2的txt文件 | |
! | 邏輯非 | *.txt !b | 文件名不含b的txt文件 |
< > | 提高優(yōu)先級,類似于數(shù)學(xué)的() | file:<1 | 2 > | 文件名含1或2的文件(夾)(參見file:) |
"" | 特殊字符串 | "foo bar" | 如果沒有""會認(rèn)為是邏輯與 |
通配符:
* 匹配0-∞個任意字符
a*.txt 匹配形如”ab.txt” “abbb.txt”
? 匹配1個任意字符
a??.txt 匹配形如”abc.txt” “aaa.txt”
修飾符:
case: 匹配大小寫
file:只匹配文件
folder:只匹配文件夾
path:匹配路徑和文件名
regex:正則表達(dá)式
ww: wholeword:全字匹配
函數(shù):
attrib:<屬性> 搜索特定屬性的目標(biāo) *.txt attrib:a所有存檔屬性的txt文件
attributes:<屬性> 同上
datecreated:<date> 搜索特定創(chuàng)建日期的目標(biāo)
*.txt datecreated:lastyear 去年創(chuàng)建的txt文件
*.txt datecreated:2010-2012
datemodified:<date> 搜索特定修改日期的目標(biāo)
dc:<date> 搜索特定創(chuàng)建日期的目標(biāo)
dm:<date>搜索特定修改日期的目標(biāo)
dupe: 搜索重復(fù)目標(biāo)
empty: 搜索空文件夾
ext:<list> 搜索指定后綴的目標(biāo) 用分號分隔
file:<ext:bmp;txt> bmp和txt文件
len:<length> 篩選出特定長度的目標(biāo)名
*.txt len:5-10 文件名長5至10的txt文件
parents:<count> Search for files and folders with the specified number of parent folders.
size:<size> 搜索特定大小的文件
*.txt size:large 1MB-16 MB的txt文件
*.txt size:7mb-8mb
函數(shù)語法:
function:value | 等于value | function:<=value | 小于等于value |
---|---|---|---|
function:<value | 小于value | function:=value | 等于value |
function:>value | 大于value | function:>=value | 大于或等于value |
function:start..end | 范圍start到end | function:start-end | 范圍start到end |
大小語法:
??size[kb|mb|gb]
大小常數(shù):
empty | 0KB | tiny | 0-10 KB |
---|---|---|---|
small | 10-100 KB | medium | 100KB-1 MB |
large | 1MB-16 MB | gigantic | 16MB-128 MB |
日期常數(shù):
??Today yesterday <last|past|prev|current|this ><week|month|year>
屬性常數(shù):
??R 只讀文件 H 隱藏文件 S 系統(tǒng)文件 D 文件夾 A 存檔文件 N 普通文件
正則表達(dá)式:(覺得難的跳過,高級話題,這里簡單介紹)
??開啟正則表達(dá)式:Everything選項卡->常規(guī)->Home Match regex:選擇Enabled,新開窗口就可以使用正則表達(dá)式了。
??一般匹配搜索有三種方式:
常規(guī)搜索:你輸入什么搜索什么
通配符:使用* ?等符號
正則表達(dá)式:最復(fù)雜也最萬能的搜索匹配法
注意,正則表達(dá)式內(nèi)部不能出現(xiàn)多余空格
目標(biāo) | 語法 |
---|---|
找到所有c:\windows目錄及其下任意子目錄的txt文件 | c:\windows*.txt |
找出所有bmp和jpg文件 | *.bmp | *.jpg |
找出所有名為download文件夾下的所有avi文件 | download\ .avi |
找出所有名字中含.tx的文件夾 | folder:.tx |
搜索空txt文件 | *.txt file:size:0 |
搜索所有大于1MB的常見圖像文件 | <.bmp|.jpg|.png|.tga> size:>1mb |
找到所有c:\windows目錄下的txt文件 | regex:c:\windows\[^]*.txt |
列出所有c:\windows的N級子目錄 | regex:c:\windows\[]*(\[]*){N}$ |
列出所有c:\windows的N級子目錄下的txt文件 | regex:c:\windows\[]*(\[]*){N}.txt$ |
查找所有全字匹配1.txt的文件 | ww:1.txt |
查找wi開頭的h文件和cpp文件 | file:<wi.h|wi.cpp> or wi* <ext:h|cpp> |
XXX第N集.rmvb”,XXX是電視劇名,N是數(shù)字 | regex:.*第[0-9]+集 |
連續(xù)的RAR壓縮包 XXXX.partN.rar,XXXX是壓縮包名,N是數(shù)字 | regex:.*part[0-9]+.rar |
連續(xù)的ZIP壓縮包 XXXX.zN | regex:.*.z[0-9]+ |
搜索所有純中文目標(biāo) | regex:[0-9a-z]*$ |
搜索帶中文字符的目標(biāo) | regex:.*[!-~]+.*$ |
??Everything的命令行選項:everything提供的命令提供了更多選項,用于配置設(shè)置和搜索,窗口的功能大部分都可以通過命令實現(xiàn),此外還提供編輯搜索列表、全屏顯示結(jié)果、調(diào)試everything、設(shè)置數(shù)據(jù)庫等很多小功能。
??命令行界面的everything:如前所述,官網(wǎng)提供了命令行界面的everything,直接下載就可以用。由于該軟件強(qiáng)大的搜索功能,因此用于二次開發(fā)也不為過(這就是下面要說的Everything-SDK.zip),官網(wǎng)也提供了該程序源碼,解壓后是個es-src文件夾,我采用vc6編譯之,為了成功編譯,需要建立一個控制臺程序,然后在everything_ipc.h里定義typedef unsigned long ULONG_PTR;,之后把工程改成UNICODE的,就成功了。順便看了他的實現(xiàn)代碼,它是通過命令行接受用戶的搜索字符串,通過發(fā)送一個WM_COPYDATA消息吧這些數(shù)據(jù)發(fā)給后臺everything.exe處理,處理完成后會發(fā)送回WM_COPYDATA消息給命令行程序,命令行接收搜索結(jié)果并顯示。
??Everything-sdk則是一個更加專業(yè)的接口可以用c/c++調(diào)用,源碼提供了封裝成dll調(diào)用的方法。和命令行界面的everything相比,這個代碼更加專業(yè)、安全、穩(wěn)定,除了WM_COPYDATA它還提供了第二種方法實現(xiàn)進(jìn)程通信,那就是在后臺創(chuàng)建一個everything線程,傳遞參數(shù),目標(biāo)程序會發(fā)送WM_COPYDATA回來,這樣就可以接收到搜索結(jié)果。
??注意:上述幾種方式都要求后臺everything程序在運行且數(shù)據(jù)庫處理完畢。
??有人說了,everything是很強(qiáng)大,那么搜索文件內(nèi)容怎么辦呢,我推薦你使用notepad++,同樣,這也是一款神器,支持正則表達(dá)式,不支持通配符。他的文件查找有一項“文件查找“可以指定單個目錄,篩選特定文件類型的文件進(jìn)行內(nèi)容查找。曾經(jīng)有人讓我找所有形如EGDI的單詞,我下了一個牛津高階詞典,然后使用正則表達(dá)式:[a-z]e[a-z]g[a-z]d[a-z]i[a-z]
??然后就開始搜索吧,enjoy it!!!
作者:超哥__
鏈接:https://www.jianshu.com/p/51534f6ecf48