我使用的是窗口操作系統,我下載了視頻作爲系列課。我想按日期排序這些視頻,並將第一個視頻的前綴編號添加爲1比2,3 .....我在這裏找到答案How to rename and add incrementing number suffix on multiple files in Batch Script?它可以將數字添加到文件名,但只能按名稱排序而不是日期。感謝和抱歉我的英語。如何在批處理腳本中的多個文件上按日期添加遞增數字前綴順序?
0
A
回答
0
下面是一個簡單的實現什麼aschipfl在他的評論中建議:
@echo off
setlocal enableDelayedExpansion
set /a n=0
for /f "delims=" %%F in ('dir /b /od') do (
set /a n+=1
ren "%%F" "!n!_%%F"
)
但有兩個潛在的問題:
1)FOR/F命令有;
默認EOL字符 - 如果文件名以;
開頭,那麼它將被跳過。簡單的解決方案是將EOL設置爲不能出現在文件名中的字符 - :
是一個不錯的選擇。
2)如果文件名包含!
字符,則重命名將失敗,因爲延遲擴展已啓用,並且%%F
在延遲擴展之前展開。解決的辦法是在文件名保存到變量中,然後切換環路
@echo off
setlocal disableDelayedExpansion
set /a n=0
for /f "eol=: delims=" %%F in ('dir /b /od') do (
set "file=%%F"
set /a n+=1
setlocal enableDelayedExpansion
ren "!file!" "!n!_!file!"
endlocal
)
有一個簡單的選擇內延遲擴展ON和OFF - 使用FINDSTR /N
前綴與行號DIR /B /OD
輸出,然後使用FOR /F
解析出數字和文件名。現在不需要計數器變量或延遲擴展。
@echo off
for /f "delims=: tokens=1*" %%A in ('dir /b /od ^| findstr /n "^"') do ren "%%B" "%%A_%%B"
你甚至不需要批處理文件。您可以使用直接在命令行:
for /f "delims=: tokens=1*" %A in ('dir /b /od ^| findstr /n "^"') do ren "%B" "%A_%B"
相關問題
- 1. Powershell腳本按順序運行多個批處理文件
- 2. 如何使用批處理腳本增加文本文件名
- 3. 如何使用批處理文件按字母順序執行SQL腳本
- 4. 排序按日期與Windows批處理腳本的文本文件
- 5. 在Spring批處理中順序處理多個文件
- 6. 批處理腳本前綴的文件名
- 7. 使用批處理腳本的文件名附加日期
- 8. 在批處理腳本中按日期將文件移動到文件夾
- 9. 通過批處理文件傳遞多個參數,Python腳本
- 10. 如何添加前綴或後綴來重命名批處理文件?
- 11. Ratpack處理程序 - 如何添加多個前綴
- 12. 按順序運行批處理文件
- 13. 爲批處理表添加自動增加主鍵的批處理腳本
- 14. 帶有效日期的日誌文件批處理腳本
- 15. 在批處理腳本中添加包含逗號的數字
- 16. 增加多個文件前綴?
- 17. 按數字順序處理文件
- 18. 批處理腳本 - 如何比較當前日期與內部文本文件日期
- 19. 如何在批處理腳本中增加循環變量?
- 20. 批處理腳本替換多個文件中的文本
- 21. 按批改日期移動文件的批處理文件
- 22. 按順序,數字的前綴爲NA
- 23. 如何從批處理文件傳遞參數到Perl腳本
- 24. 如何在批處理腳本中將日期和時間插入文件名?
- 25. 如何在批處理文件中添加文本?
- 26. 如何從PHP腳本(如批處理文件)中運行多個PHP腳本?
- 27. 在批處理腳本中的2個日期之間顯示文件
- 28. 批量添加幾個文件的後綴除了批處理文件
- 29. 批處理或VB腳本添加3行文本到文件
- 30. 批處理命令 - 在文件夾末尾添加日期
隨着'DIR/O'你可以列出按日期排序的文件(參見'DIR /'的選擇嗎?);你可以通過'for/F'循環解析它的輸出,安裝一個計數器變量並通過'ren'將它加到文件名中。 – aschipfl