我在 Windows 中經(jīng)常需要做跨文件夾的操作。
每當(dāng)我需要對(duì)跨文件夾的多個(gè)文件進(jìn)行操作時(shí),我都會(huì)深深感覺(jué)跨文件夾操作的不便。系統(tǒng)在這方面的功能只有一個(gè)搜索,往往無(wú)法解決遇到的問(wèn)題。
所以這時(shí)候我們就需要一些輔助工具對(duì)目錄文件進(jìn)行批量操作,如果不考慮安裝第三方文件管理工具,Everything 應(yīng)該是最好的選擇了。這款文件搜索工具,相信不少讀者都有所耳聞。得益于搜索原理的不同,Everything 要比系統(tǒng)自帶的搜索快上百倍,1 秒鐘就能完成十余萬(wàn)個(gè)文件的索引,同時(shí)內(nèi)存占用低,會(huì)自動(dòng)對(duì)文件夾內(nèi)容實(shí)時(shí)更新。
這些優(yōu)點(diǎn)讓它成為了 Windows 平臺(tái)上最好用的文件搜索工具。
有關(guān)多個(gè)文件夾的操作一般都不會(huì)太簡(jiǎn)單。這里就有個(gè)略顯復(fù)雜的例子,大家可以先想想怎么解決——前段時(shí)間,我從 Google Photos 里導(dǎo)出了 60 GB 左右的照片存檔,下載時(shí)的每個(gè)壓縮包是 1 GB 大小,總共有 61 個(gè)壓縮包。
然后問(wèn)題來(lái)了,我發(fā)現(xiàn) Google Photo 的數(shù)據(jù)存儲(chǔ)方式挺特殊的,導(dǎo)出的壓縮包名稱(chēng)為 takeout-2018XXXX-序號(hào)
,每個(gè)壓縮包中都有一個(gè) takeout
文件夾,里面還有 Google
相冊(cè)
文件夾,打開(kāi)才能看到日期文件夾,再打開(kāi)才是照片本身。從根目錄到照片之間,有 4 級(jí)文件夾。
如果我不借助任何工具,想從這些文件夾中把所有的照片提取到同一個(gè)文件夾,我就得手動(dòng)點(diǎn)開(kāi)這 61 個(gè)文件夾,進(jìn)入 4 級(jí)目錄,然后將日期文件夾移動(dòng)到同一個(gè)目錄中……粗略估算,可能要點(diǎn)上兩三百下鼠標(biāo),拖動(dòng)幾十次。過(guò)程無(wú)聊又乏味,這樣的重復(fù)工作量顯然是難以接受的。
我想在一個(gè)視圖中看到所有的文件夾,然后一次性操作。
這里就用到了 Everything 的一個(gè)小技巧,可以利用它來(lái)解決上面這個(gè)問(wèn)題:
在 Everything 的搜索框中輸入 "文件夾路徑"
,或者「右鍵文件夾空白處 → 在 Everything 中搜索」,就會(huì)直接展示該目錄下所有的文件。
對(duì)搜索結(jié)果進(jìn)行名稱(chēng)排序,將同名的文件夾排在前面。這樣結(jié)果中就會(huì)將多級(jí)目錄下的不同文件夾全部按順序列出來(lái)。
將這些「以日期命名」的文件夾全部拖出來(lái)(指的是最里面一層文件夾,不要選中具體文件和 takeout 文件夾)。
這樣,所有日期文件夾就會(huì)被放在同一級(jí)目錄中了,同名文件夾會(huì)被系統(tǒng)自動(dòng)合并。
簡(jiǎn)單的三步,就把這項(xiàng)繁復(fù)的任務(wù)給完成了。其實(shí)這種情況,不止出現(xiàn)在 Google Photos
的導(dǎo)出工作中,當(dāng)你從筆記應(yīng)用中導(dǎo)出數(shù)據(jù)、做文案歸檔工作、設(shè)計(jì)圖紙查詢時(shí),也會(huì)面對(duì)大量的多級(jí)文件夾。對(duì)那些身處不同文件夾中的小文件,就可以采用這種方式來(lái)對(duì)單個(gè)文件夾進(jìn)行批量處理。
不過(guò)學(xué)會(huì)了這招,還只是剛剛?cè)腴T(mén)而已。
「如果我不需要按日期分類(lèi),想把所有的照片放在同一個(gè)文件夾中,是不是只要把照片文件直接拖出來(lái)就行了呢?」
這個(gè)操作看上去似乎沒(méi)有問(wèn)題,不過(guò)在實(shí)際操作時(shí),可能會(huì)出現(xiàn)更復(fù)雜的情況,比如文件重名。
在 Google Photos 的例子中,多個(gè)文件夾中的文件可能有同樣的文件名。比如 001 壓縮包中有 image.jpg 的照片,002、003 壓縮包中可能也會(huì)有叫 image.jpg 的照片。如果直接拖出來(lái)就會(huì)出現(xiàn)文件名沖突,同時(shí)無(wú)法很快確定這幾張照片是不是同一張。
Windows 在復(fù)制時(shí)如果遇到重名情況時(shí)會(huì)讓你選擇「替換」「跳過(guò)」或者「比較信息」,比較后你可以選擇保留兩個(gè)文件,勾選左下角的「跳過(guò)具有相同日期和大小的文件」,可以勾選全部文件來(lái)保留兩個(gè)版本。復(fù)制少量文件時(shí)你可以通過(guò)這個(gè)方法來(lái)搞定重名文件的復(fù)制。
但是,復(fù)制界面其實(shí)是相當(dāng)脆弱的,在文件數(shù)量巨大 + 硬盤(pán)讀寫(xiě)速度較慢的情況下,這簡(jiǎn)直是一道鬼門(mén)關(guān)。
我批量復(fù)制 20 G 左右的大量小文件時(shí),就發(fā)現(xiàn)了不少問(wèn)題:
首先這個(gè)界面彈出時(shí)間是不確定的,多數(shù)情況下會(huì)在移動(dòng)文件的后半段出現(xiàn),如果是掛機(jī)復(fù)制,電腦前沒(méi)有人,就會(huì)長(zhǎng)時(shí)間停在這個(gè)界面,影響復(fù)制進(jìn)度。
其次是穩(wěn)定性差,由于我那 20 G 小文件中有不少文件重復(fù),載入對(duì)比界面時(shí)白屏了半天。好不容易進(jìn)入了比較界面,對(duì)比了好久文件,確認(rèn)后進(jìn)度條又不動(dòng)了……最后只能 Ctrl + Alt + Delete 結(jié)束進(jìn)程。
最后是無(wú)法斷點(diǎn)續(xù)傳,結(jié)束進(jìn)程就意味著前功盡棄,要從頭復(fù)制了,同時(shí)還有損壞文件的可能。實(shí)在是令人頭疼。
「那么,能不能在復(fù)制出問(wèn)題之前,就把這個(gè)問(wèn)題解決呢?」
可以,那我們就需要先找出那些名字相同的文件,篩選流程是這樣的:
對(duì)文件進(jìn)行判斷 ,對(duì)比文件名、文件大小,或者手動(dòng)對(duì)比。
如果是同一個(gè)文件 → 刪除重復(fù)文件。
如果不是同一個(gè) → 批量修改文件名。
網(wǎng)上僅有的一些教程會(huì)讓大家利用 Everything 自帶的搜索關(guān)鍵詞 dupe:
將重復(fù)文件篩選出來(lái)。
但實(shí)際上,這里配合另一個(gè)關(guān)鍵詞 sizedupe:
一起使用效果更佳,這個(gè)關(guān)鍵詞的作用是查找出文件大小相同的文件。兩個(gè)不同文件的名稱(chēng)可以相同,但是文件大小一般是不同的。所以需要用 sizedupe:
dupe:
來(lái)篩選出文件名相同且文件大小相同的文件(盡管不是非常嚴(yán)謹(jǐn),但在日常生活中已經(jīng)足夠確認(rèn)這是重復(fù)文件了。)
搞清楚了篩選思路,接下來(lái)就好辦多了。在 Everything 的搜索框中輸入 "文件夾路徑" sizedupe: dupe:
,該目錄下的重復(fù)文件都會(huì)顯示在結(jié)果中。
這里如果想僅顯示文件,可以帶上一個(gè) file:
關(guān)鍵詞(或是用 folder:
關(guān)鍵詞,僅顯示文件夾)。
很快篩選出了文件,馬上出現(xiàn)了另一個(gè)問(wèn)題:由于 Everything 主打搜索功能,并未專(zhuān)門(mén)提供一鍵刪除重復(fù)文件的功能。
「那是不是只能一個(gè)一個(gè)選中,然后手動(dòng)刪除呢?」
完全不用,因?yàn)檫@些是重復(fù)的文件,直接把所有結(jié)果直接拖進(jìn)同一個(gè)文件夾,然后直接選擇「跳過(guò)這些文件」,就可以讓這些文件僅保留一份了。
接下來(lái)要對(duì)名字相同的文件進(jìn)行重命名。
由于在第一步中已經(jīng)把重復(fù)文件清空了,現(xiàn)在剩下的文件都是唯一的。你可以在 Everything 中搜索 "文件夾路徑" dupe:
來(lái)找到重名文件,然后選中并右鍵 →
重命名給他們批量重命名。
Everything 自帶了一個(gè)簡(jiǎn)陋的批量重命名工具,可以把原文件名中的一部分取出來(lái)做替換,也支持正則表達(dá)式,但不支持用文件的屬性(比如創(chuàng)建日期、拍攝日期等)來(lái)命名。所以這里我更推薦一些專(zhuān)用的命名工具來(lái)給文件重命名。
當(dāng)然,如果你不介意這個(gè)問(wèn)題,也可以像上面一樣直接拖進(jìn)一個(gè)文件夾,然后選擇「讓我決定每一個(gè)文件」,保留所有的文件,Windows 會(huì)自動(dòng)給這些文件后面加上 (1) (2) (3)。
通過(guò)這種方式,極大地緩解了 Windows 自帶的復(fù)制功能的不穩(wěn)定性,也間接的解決了彈窗時(shí)間不確定性和斷點(diǎn)續(xù)傳的問(wèn)題。當(dāng)你需要對(duì)大量小文件進(jìn)行批量操作卻為糟糕的復(fù)制體驗(yàn)發(fā)愁時(shí),就可以采用這 3 步來(lái)解決問(wèn)題。
一般使用 Everything 的場(chǎng)景是搜索單一文件,直接搜索文件名就可以了。但在這篇文章中,我們將 Everything 作為跨文件夾的篩選器來(lái)使用時(shí),僅從文件名做篩選就不合適了。這里我們要學(xué)會(huì)一些關(guān)鍵詞來(lái)找到特定文件。
Everything 支持非常多的關(guān)鍵詞,你可以直接在軟件的幫助 → 搜索語(yǔ)法中找到。如果不容易理解,還可以在 Everything 的官方文檔中找到更詳細(xì)的解釋。
如果只是把這些關(guān)鍵詞列舉出來(lái),那這篇文章的作用就很小了。這里要介紹的是一些好用的關(guān)鍵詞組合,學(xué)會(huì)利用多個(gè)關(guān)鍵詞來(lái)找到需要的文件才是重點(diǎn)。
在介紹之前,為了熟練掌握關(guān)鍵詞之間的關(guān)系,要先學(xué)習(xí)一下「與、或、非、分組」這幾個(gè)最基礎(chǔ)的邏輯。它們就像四則運(yùn)算中的加減乘除和括號(hào),掌握了這些,才能進(jìn)行更復(fù)雜的篩選。
與: 空格
或:|
豎線(通常在回車(chē)鍵的上方)
非:!
感嘆號(hào)
分組:<>
類(lèi)似于四則運(yùn)算中括號(hào)的作用
搜索詞組:""
引號(hào)
引號(hào)的作用要多提一句,它是為了讓多個(gè)單詞變成一個(gè)詞組。比如直接搜索 App Store
,Everything 會(huì)將中間的空格理解為「與」就變成了搜索的兩個(gè)條件。而搜索 "App
Store"
就會(huì)顯示帶有 App Store 這個(gè)詞組的結(jié)果了。這個(gè)問(wèn)題在英文環(huán)境下比較明顯。
如果細(xì)心一點(diǎn),你會(huì)發(fā)現(xiàn)搜索路徑時(shí)也會(huì)加上引號(hào),這是為了防止在 C:\Program Files 這樣的目錄中搜索時(shí),被錯(cuò)誤理解為「在 C:\Program 目錄中搜索帶有 Files 的文件」。
先從簡(jiǎn)單的開(kāi)始講起。大文件會(huì)占用許多硬盤(pán)容量,磁盤(pán)空間不足時(shí)應(yīng)該首先處理這些大型文件。用下面這些關(guān)鍵詞查找完畢后,按文件大小排序,就可以找到電腦中最大的那些文件了。
查找大于 128 MB 的文件:size:gigantic
查找小于 10 KB 的文件:size:tiny
不想記單詞就用:size:>128MB
(具體數(shù)字可以自己定義)
你也可以用 size:empty
來(lái)找到 0 KB 的空文件,但是空文件通常是有特殊作用的,不建議刪除。
如果有時(shí)候忘記了文件的一部分名字,印象中只有「2018、支出、表」這幾個(gè)字了,除了可以用空格來(lái)表示文件中同時(shí)含有這幾個(gè)字符,還可以用 *
和 ?
作為通配符來(lái)查詢文件。
匹配 0 個(gè)或者多個(gè)字符:*
匹配 1 個(gè)字符:?
用通配符可以進(jìn)行模糊搜索。這里要注意,想使用 ?
就要和 *
一起用,否則就不會(huì)匹配更多內(nèi)容了。
實(shí)際使用案例:在以日期命名的文件中搜索 201?-12-??-*
,就可以找到歷年的 12 月份都做了些啥事。
匹配開(kāi)頭的字符:startwith:
除了簡(jiǎn)單模糊匹配,還可以固定開(kāi)頭的字符,不過(guò)在冒號(hào)后無(wú)法使用通配符。但可以加上空格增加通配符條件,作為搜索的兩個(gè)條件使用。
實(shí)際使用案例:用搜索 startwith:2018-12
來(lái)搜索以 2018-12
為開(kāi)頭的所有文件。
有時(shí)候我們需要在 10000 個(gè)文件中找到前 100 個(gè),再按創(chuàng)建時(shí)間排列。這就需要用到限定結(jié)果數(shù)量的關(guān)鍵詞了。
限定搜索結(jié)果的數(shù)量:count:
實(shí)際使用案例:我只想看到前 100 個(gè)文件,用 count:100
就可以讓結(jié)果只顯示 100 個(gè)文件了。
需要提醒一下,搜索結(jié)果視圖的排序方式會(huì)對(duì) count 的結(jié)果產(chǎn)生影響??梢园?strong>搜索框理解為全局文件篩選器,結(jié)果視圖的排序方式是列表內(nèi)文件的篩選器?!杆阉鳌埂概判颉沟捻樞虿煌?,也會(huì)對(duì)結(jié)果產(chǎn)生影響,在具體使用時(shí)需要注意。
如果在工作中經(jīng)常和文檔打交道,可以用下面兩個(gè)關(guān)鍵詞篩選出近期修改過(guò)、創(chuàng)建過(guò)的文件。dm:
是修改時(shí)間,dc:
是創(chuàng)建時(shí)間。未建立相應(yīng)索引時(shí),創(chuàng)建時(shí)間的搜索速度較慢,推薦使用 dm:
。
查找今天修改的文件:dm:today
查找本周創(chuàng)建的文件:dc:thisweek
如果 doc:
結(jié)果中出現(xiàn)了一些你不需要的 HTML、ini 等文件,可以用「非」來(lái)排除一些?;蛘吒纱嘤?*.doc 來(lái)查找特定的文件類(lèi)型。
查找文檔文件(包括純文本文件等許多格式):doc:
僅搜索 Word 文檔的兩種方法:ext:doc,*.doc
排除 HTML 文件的兩種方法:!ext:html,!*.html
這些關(guān)鍵詞可以任意組合使用,來(lái)盡可能快地找到所需文件。
實(shí)際使用案例:用 dm:thismonth ext:xls|ext:xlsx
找到這個(gè)月修改過(guò)的所有表格文件。
我會(huì)定期在移動(dòng)硬盤(pán)中備份文檔,為了節(jié)約時(shí)間,我想做一次增量備份,不再去完整復(fù)制已有的內(nèi)容。
用 \ 來(lái)搜索部分路徑:01-文檔庫(kù)\
比如,本地有一個(gè) D:\01-文檔庫(kù)\
目錄,移動(dòng)磁盤(pán)中的備份目錄為 F:\Backup\01-文檔庫(kù)\
。只輸入 01-文檔庫(kù)\
就會(huì)讓這兩個(gè)文件夾中的結(jié)果全部顯示出來(lái)。
查詢結(jié)果中不重復(fù)的文件:!dupe:
這是上面查詢重復(fù)文件 dupe:
的反向應(yīng)用,用來(lái)查看兩個(gè)文件夾之間的區(qū)別。
實(shí)際使用案例 1:輸入 01-文檔庫(kù)\ !dupe:
然后把本地的新增文件復(fù)制到移動(dòng)硬盤(pán)中,就可以輕松完成增量備份了,這個(gè)情況適用于比較冷門(mén)的文件名。
實(shí)際使用案例 2:如果出現(xiàn)了其他干擾項(xiàng),也可以使用「或」|
僅對(duì)這兩個(gè)文件夾做篩選,需要多打幾個(gè)字:D:\Design\作品庫(kù)\|F:\作品庫(kù) !dupe:
子文件篩選其實(shí)也經(jīng)常用到,Everything 提供了四個(gè)關(guān)鍵詞,來(lái)對(duì)子文件進(jìn)行篩選:
搜索包含匹配文件名文件或文件夾的文件夾:child:<filename>
搜索包含有指定數(shù)目子文件夾或文件的文件夾:childcount:<count>
搜索包含有指定數(shù)目文件的文件夾:childfilecount:<count>
搜索包含有指定數(shù)目子文件的文件夾:childfoldercount:<count>
這四個(gè)描述是我直接引用官網(wǎng)文檔的,因?yàn)槊枋龅亩挤浅?zhǔn)確,刪改一個(gè)字就可能改變它的原意。第一個(gè)是通過(guò)子文件的文件名篩選,后面三個(gè)都是通過(guò)子文件(夾)的數(shù)量進(jìn)行篩選。
實(shí)際使用案例:我需要給歷史比較久遠(yuǎn)的文件進(jìn)行歸檔,想知道 D:\Documents
下有多少個(gè)文件夾包含了 100 個(gè)以上的文件,我就可以用childfilecount:>100
來(lái)搜索結(jié)果。
而用到 child:
關(guān)鍵詞是因?yàn)槲医o每個(gè)文件夾都放了一個(gè) .ico 圖標(biāo),然后批量設(shè)置文件夾圖標(biāo)。但手動(dòng)查看總會(huì)有遺漏,為了知道哪個(gè)文件夾里還沒(méi)有圖標(biāo)就需要一個(gè)一個(gè)點(diǎn)開(kāi)。如今在 Everything 中搜索 D:\Documents
!child:ico
就可以看到這些子文件夾中有哪些還沒(méi)有圖標(biāo)。
有時(shí)候搜索出的結(jié)果太多,你可以利用下面這些關(guān)鍵詞來(lái)去除那些不需要的文件。
不顯示系統(tǒng)文件:!attrib:s
不顯示隱藏文件:!attrib:h
注意不要單獨(dú)使用,最好是在已有結(jié)果中用它們篩選。因?yàn)檫@兩個(gè)關(guān)鍵詞需要遍歷每一個(gè)文件的屬性,會(huì)耗費(fèi)比較長(zhǎng)的時(shí)間。
你也可以全局應(yīng)用這兩項(xiàng),在「工具 → 選項(xiàng) → 排除列表」中設(shè)置后,就會(huì)排除整個(gè)電腦中所有的系統(tǒng)文件和隱藏文件而不用每次都手動(dòng)輸入了。
雖然 Everything 提供了這么多關(guān)鍵詞,其中的一些看上去很有用……但實(shí)際使用起來(lái)根本不是那么一回事。所以下面這些關(guān)鍵詞沒(méi)有必要記住它們,找找更好用的替代品或是做一些設(shè)置吧。
點(diǎn)名批評(píng)文件內(nèi)容搜索類(lèi):content:<text>
。盡管用 content: 可以查找文件內(nèi)容,但由于沒(méi)有提前建立內(nèi)容索引,它的查詢速度實(shí)在慢得離譜。我在 500
多個(gè)文檔文件中搜索一個(gè)詞組,等了 1 分多鐘才出現(xiàn)結(jié)果(官網(wǎng)也提示了搜索內(nèi)容非常慢)。用 Everything 的一大原因就在于速度極快,如果搜索一次這么耗時(shí),不如去選用其他工具。這類(lèi)耗時(shí)較長(zhǎng)的關(guān)鍵詞都是不實(shí)用的。
這類(lèi)關(guān)鍵詞可以通過(guò)更簡(jiǎn)單的方式進(jìn)行表達(dá),比如 fsi:<index>
是讓你指定盤(pán)符的,比如 fsi:0
是 C 盤(pán)、fsi:1
是
D 盤(pán)……以此類(lèi)推。但實(shí)際上你只要用 C:\
和 D:\
來(lái)表示就可以了,Windows 是不允許文件名中帶有 : 和 的,所以使用時(shí)這兩者沒(méi)有區(qū)別,后者更容易表達(dá)。
除了前面提到的 doc:
,還有 zip:
、audio:
、video:
這些關(guān)鍵詞可以篩選文件類(lèi)型。這些還是挺實(shí)用的,但其實(shí)還有更直觀的方式來(lái)篩選。開(kāi)啟「查看→篩選器」,就可以在搜索框的右邊看到一個(gè)用于選擇文件的類(lèi)型的篩選工具。
總結(jié)
盡管市面上有專(zhuān)門(mén)的文件對(duì)比工具,利用 Everything 查找重復(fù)文件可能不是最好的選擇,但由于它的篩選速度實(shí)在是太出色了,我還是愿意在 Everything 中做這些偶爾需要做的任務(wù),而不是去從頭尋找、安裝、掌握一個(gè)新工具的使用方法。
我們學(xué)習(xí)使用一個(gè)工具的時(shí)候,首先是從需求出發(fā),解決現(xiàn)有的問(wèn)題就好。接著再去找找有沒(méi)有更深入的方法。當(dāng)學(xué)習(xí)并熟悉一套篩選方式之后,其實(shí)不僅是記住了一些關(guān)鍵詞這么簡(jiǎn)單。而是會(huì)自然而然地從這套篩選方法中學(xué)會(huì)很多思路。想辦法去使用「非」邏輯,一個(gè)關(guān)鍵詞就會(huì)產(chǎn)生兩種截然相反的結(jié)果;考慮文件自身有哪些特點(diǎn),找出這個(gè)特點(diǎn)去篩選通常可以找到規(guī)律,這類(lèi)思考無(wú)處不在。
所以最關(guān)鍵的是掌握篩選的思路,批量處理文件夾時(shí)就會(huì)變得異常簡(jiǎn)單。
聯(lián)系客服