用正則表達式批量重命名


最近拍了一些照片,開始有意識地上傳到PPBC中國圖像庫保存。PPBC有自動識別的功能,即文件名中包含植物拉丁文名或中文名的情況下,系統可以自動鑒定為相應的物種。這就經常需要對圖片重命名,我一般隨手寫個.bat文件,用dos的rename命令搞一下,非常便捷高效。但人老了總是很糊塗,一是經常記不住相應的命令,像今天建了個txt文件寫好了命令,卻忘了可執行文件的后綴是啥,改了啥.exe .cmd,真丟人;二是正則匹配經常翻車,下面重點記錄下正則表達式的匹配情況。

 

D:\photo\2020\0326觀光木\手機 目錄下有一批文件,格式是這樣的:

IMG_20200326_153346.jpg

IMG_20200326_153346.jpg 這是華為手機的自動命名方式,IMG開頭加上日期,再加上一串6位的數字,其中前兩位還是保持不變的。

 

我的本意是想在文件名后面加上“_觀光木”,於是寫了以下命令:

rename IMG_20200326_15*.jpg IMG_20200326_15*_觀光木.jpg

結果文件被命名成這樣了:

IMG_20200326_153346.jpg_觀光木.jpg

把所有的都匹配上了,超嚇人的有木有?

 

改成這樣只好去好好研究一下正則表達式,然后想辦法改回來:

rename IMG_20200326_15[0-9]{4}.jpg_觀光木.jpg IMG_20200326_15[0-9]{4}_觀光木.jpg

我用在線檢測工具測試過,這樣是可以匹配到的,但卻無法執行后續的重命名操作。

 

為什么?難道是命令太復雜了?改了一種寫法:

rename IMG_20200326_15????.jpg_觀光木.jpg IMG_20200326_15????_觀光木.jpg

它就好了。這是什么原理我還搞不明白,姑且先記錄之。


免責聲明!

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



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