【bat】批量修改文件名腳本

有人託我寫個批量修改文件名的腳本,之前沒有寫過bat,現學現賣,在此記錄一下。

具體代碼如下:

rem 關閉調試輸出,開啓延遲變量
@echo off&setlocal enabledelayedexpansion 
rem 讀取輸入的前綴
set/p a1=請輸入想要添加的前綴:
rem 遍歷當前目錄下的所有文件夾
for /f "delims=" %%a in ('dir /b /a:d') do ( 
    set n=%%a
    rem 截取前面四個字符
    set n=!n:~0,4!
    echo 將%%a轉成%a1%!n!
    rem 重命名文件夾,添加指定前綴    
    ren "%%a" "%a1%!n!"
)
pause

遇到的幾個坑:

  1. 不要隨便加空格。這點和其他語言不太一樣,如寫成set n = %%a,很可能出現意想不到的問題。
  2. for循環後面的括號裏面算一句代碼,所以循環體中定義的變量無法修改。開始寫成set n=%n:~0,4%,發現始終沒起作用。解決辦法是開啓(enabledelayedexpansion)並使用延遲變量(如!a!)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章