windows 批处理-重命名
從數字1遞增批量重命名ren.bat:?
@echo off SETLOCAL ENABLEDELAYEDEXPANSION set /A num=0 FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do ( IF NOT "%%i"=="%~n0%~x0" ( set /A num+=1 ren "%%i" "!num!%%~xi" ) ) ENDLOCAL exit
按00001這類格式遞增批量重命名ren.bat:?
如果覺得0多了,可以用下面的批處理來去掉,默認是去1個,要去多少個就把!name:~1!中的數字1改成要去的個數,改這個批處理要比改前面的批處理方便一些,所以寫了這個用:?
上面的批處理要和文件放在一個目錄里,命名后刪除批處理文件即可。?
??
直接使用dir的話,缺點是重命名的時候把批處理本身及子文件夾也改名了,而且?
所得文件名字不能連續排序(批處理文件可能占了中間某個序號),因此用dir參?
數進行排除文件夾內的子文件夾以及排序(排序目的就是把批處理排到最后)。?
??
還有就是重名現象不好解決,如果原來已經含有一個重命名后可能會出現的名稱,?
名稱被占用了程序就不能繼續運行。可以事先用系統的重命名功能命名一次,方?
法是選擇要重命名的所有文件,Ctrl+a或者選擇第一個再按住Shift不放,再選最?
后一個進行連續選擇,右鍵點擊其中一個文件,選擇重命名,然后隨便寫一個名?
字,你將看到系統的批量命名是以括號內數字遞增的。?
??
??
排序參數的說明:?
下面這行?
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (?
中的/OD參數是按時間排序,使用的時候把批處理文件復制到文件夾里,那么批處?
理文件的創建時間就是最后的了,解決了文件連續的問題。?
??
如果用/O-E也可以,這樣也能使批處理文件排在最后(擴展名是bat,b的優先級高,?
用-號來顛倒順序)。?
??
/OD后再加/TC更準確些。?
??
dir中/O和/T參數的說明:?
/O?????????? 用分類順序列出文件。?
sortorder????N??按名稱(字母順序)???? S??按大小(從小到大)?
??????????????E??按擴展名(字母順序)?? D??按日期/時間(從先到后)?
??????????????G??組目錄優先?????????? -??顛倒順序的前綴?
/T?????????? 控制顯示或用來分類的時間字符域。?
timefield????C??創建時間?
??????????????A??上次訪問時間?
??????????????W??上次寫入的時間?
??
for會自動去掉空行的,所以參數肯定不為空。
?
參考:
http://www.newsmth.net/nForum/#!article/DOS/17370
log.csdn.net/liujishen/article/details/4490859
http://www.cnblogs.com/shiney/archive/2011/07/04/2097236.html
轉載于:https://www.cnblogs.com/ccdc/p/3353175.html
總結
以上是生活随笔為你收集整理的windows 批处理-重命名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 写出漂亮代码的七种方法
- 下一篇: 30款顶级CSS工具及应用-CSDN.N