您好,登錄后才能下訂單哦!
如何批處理重命名?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
案例一、
想把一個文件夾里的全部文件都命名成001,002……這樣按順序,什么順序無所謂,只要名字都變了就行,誰幫忙寫個
我給出的代碼:
@echo off setlocal enabledelayedexpansion set var=1000 for /r "%~dp0" %%i in (*.*) do ( set /a var+=1 if not "%%~nxi"=="%~nx0" ren "%%i" !var:~-3!%%~xi ) pause>nul echo 處理完畢,任意鍵退出... exit
簡單解釋:
1.使用for /r 遍歷當前目錄(%~dp0)下所有文件,效率比for /f + dir /s /b 高;
2.if not語句用于排除bat文件本身,全路徑是%0,拓展到bat文件名:%~nx0;
3.利用變量1000開始累加,每次利用!var:~-3!取得后三位,即依次為001、002、003...
Ps:var=1000,那么此腳本最多重命名999個文件,再多將出現覆蓋錯誤,如何修改?請澗客思考,最好能在評論中留下您的代碼,呵呵!(比較簡單,大蝦請勿拍磚!)
案例二、
“比如,我有一個文件夾里的文件都是X1,、X2…X51,我有個的文件名字是X15.ass,用完以后變成[Yousei-raws] Soul Eater 14 [BDrip 1280x720 x264 FLAC].ass代碼如下:
@echo off set a=0 setlocal EnableDelayedExpansion for %%n in (*.ass) do ( ren "%%n" "[Yousei-raws] Soul Eater !a! [BDrip 1280x720 x264 FLAC].ass" set /A a+=1 )
如何才能讓順序變正確,順便說一下,最后一個51變成了1.
我給出的代碼:
@echo off set a=100 setlocal EnableDelayedExpansion for /f "delims=*" %%n in ('dir /b *.ass') do ( set /a a+=1 ren "%%n" "[Yousei-raws] Soul Eater !a:~-2! [BDrip 1280x720 x264 FLAC].ass" )
簡單解釋:因為a的值,被初始化為0,所以第一個文件就是0,第二個是1,那么第15個就是14了。。。代碼調換了下順序,先給a+1,讓重命名時a的值為1即可。
看完上述內容,你們掌握如何批處理重命名的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。