Windows系統(tǒng)使用bat批量修改文件名的使用示例
編寫運(yùn)行.bat文件
新建文本文檔,輸入如下內(nèi)容:
@echo off chcp 65001 setlocal enabledelayedexpansion rem 設(shè)置要查找和替換的字符串 set "search=aaa" set "replace=bbb" rem 設(shè)置文件名匹配模式,例如*.txt表示修改.txt文件,*.*表示修改所有文件 set "filePattern=*.txt" rem 設(shè)置目標(biāo)文件夾的路徑 set "folderPath=C:\YourFolderPath" rem 切換到目標(biāo)文件夾 cd /d "%folderPath%" rem 遍歷文件并重命名 for %%f in (%filePattern%) do ( set "filename=%%~nf" set "newFilename=!filename:%search%=%replace%!" ren "%%f" "!newFilename!%%~xf" ) echo 文件名修改完成。 pause
請(qǐng)按照以下步驟執(zhí)行此批處理腳本:
- 打開記事本或其他文本編輯器,將上述代碼復(fù)制粘貼到新建的文本文件中。
- 在代碼中,將
search
變量設(shè)置為要查找的字符串,將replace
變量設(shè)置為要替換的字符串。 - 如果需要修改特定類型的文件,請(qǐng)將
filePattern
變量設(shè)置為相應(yīng)的文件擴(kuò)展名。如果要修改所有文件,可以將其設(shè)置為*.*
。 - 將
folderPath
變量設(shè)置為包含要重命名文件的目標(biāo)文件夾的路徑。 - 將文本文件保存為批處理文件,例如
rename_files.bat
。 - 雙擊批處理文件以執(zhí)行腳本,它將遍歷目標(biāo)文件夾中的文件并按照您指定的規(guī)則重命名它們。
請(qǐng)謹(jǐn)慎操作,并在執(zhí)行之前備份文件,以防需要還原。
folderPath設(shè)置為bat文件所在的文件夾
@echo off chcp 65001 setlocal enabledelayedexpansion rem 獲取批處理文件所在的文件夾路徑 for %%I in ("%~dp0.") do set "folderPath=%%~fI" rem 設(shè)置要查找和替換的字符串 set "search=aaa" set "replace=bbb" rem 設(shè)置文件名匹配模式,例如*.txt表示修改.txt文件,*.*表示修改所有文件 set "filePattern=*.txt" rem 切換到目標(biāo)文件夾 cd /d "%folderPath%" rem 遍歷文件并重命名 for %%f in (%filePattern%) do ( set "filename=%%~nf" set "newFilename=!filename:%search%=%replace%!" ren "%%f" "!newFilename!%%~xf" ) echo 文件名修改完成。 pause
在上述代碼中,"%~dp0"
用于獲取批處理文件所在的文件夾路徑,然后將其賦給 folderPath
變量,以便在后續(xù)的操作中使用。這樣,腳本將工作在批處理文件所在的文件夾中,您可以在該文件夾中執(zhí)行文件名修改操作。
代碼解釋
for %%I in ("%~dp0.") do set "folderPath=%%~fI"
這段批處理腳本的目的是獲取包含批處理文件的文件夾的路徑,并將該路徑存儲(chǔ)在名為 folderPath
的變量中。讓我解釋其中的幾個(gè)關(guān)鍵部分:
%~dp0
:這是批處理文件內(nèi)置的特殊變量,它表示當(dāng)前批處理文件的完整路徑,其中%~d
表示驅(qū)動(dòng)器,%~p
表示路徑。因此,%~dp0
表示當(dāng)前批處理文件的文件夾路徑。for %%I in ("%~dp0.")
:這是一個(gè)for
循環(huán),它遍歷一個(gè)項(xiàng)列表,其中%%I
是循環(huán)變量。在這里,我們使用for
循環(huán)來處理%~dp0
的值,因?yàn)?nbsp;%~dp0
可能包含空格或特殊字符,需要將其引號(hào)括起來。set "folderPath=%%~fI"
:在for
循環(huán)內(nèi)部,%%~fI
表示對(duì)循環(huán)變量%%I
的擴(kuò)展,其中%~f
表示取得完整的路徑。因此,set "folderPath=%%~fI"
將folderPath
變量設(shè)置為包含批處理文件的文件夾的完整路徑。
總之,這段代碼的作用是獲取批處理文件所在文件夾的完整路徑,并將其存儲(chǔ)在 folderPath
變量中,以便在腳本的后續(xù)部分中使用該路徑。這對(duì)于需要在批處理腳本中引用腳本所在文件夾的情況非常有用,因?yàn)樗试S腳本在不考慮具體位置的情況下訪問其所需的資源或文件。
for %%f in (%filePattern%) do
for %%f in (%filePattern%) do
是一個(gè)批處理中的循環(huán)結(jié)構(gòu),它的目的是遍歷滿足指定文件模式的文件,并對(duì)每個(gè)文件執(zhí)行一組命令。讓我解釋其中的幾個(gè)關(guān)鍵部分:
for %%f
:這是一個(gè)for
循環(huán)的開始,其中%%f
是循環(huán)變量的名稱。在批處理中,通常使用%%
來表示循環(huán)變量,而不是單獨(dú)的%
。in (%filePattern%)
:這部分定義了要遍歷的文件列表。%filePattern%
是一個(gè)變量,它應(yīng)該包含一個(gè)文件模式,用于匹配要處理的文件。例如,如果%filePattern%
的值為*.txt
,那么循環(huán)將遍歷所有擴(kuò)展名為.txt
的文件。do
:在do
后面的是要在每次迭代中執(zhí)行的一組命令。這些命令可以是批處理腳本中的任何有效命令,例如重命名文件、復(fù)制文件、執(zhí)行操作等。
綜合起來,for %%f in (%filePattern%) do
的作用是遍歷滿足文件模式 %filePattern%
的文件,并對(duì)每個(gè)文件執(zhí)行 do
后面的一組命令。這使得批處理腳本能夠?qū)σ唤M文件執(zhí)行相同的操作,例如批量重命名、復(fù)制或刪除文件等。
set "filename=%%~nf"
set "newFilename=!filename:%search%=%replace%!"
ren "%%f" "!newFilename!%%~xf"
這個(gè)批處理文件中的代碼用于重命名文件名中的部分文本。讓我解釋一下每一行代碼的含義:
set "filename=%%~nf"
:這一行代碼將當(dāng)前文件的名稱(不包括擴(kuò)展名)存儲(chǔ)在變量filename
中。%%~nf
是一個(gè)批處理文件中用于獲取文件名部分的特殊語法,其中%%~n
表示獲取文件名,f
表示當(dāng)前文件的占位符。所以%%~nf
將被替換為當(dāng)前文件的名稱。set "newFilename=!filename:%search%=%replace%!"
:這一行代碼將在filename
變量中查找并替換文本。具體來說,它會(huì)查找filename
中的所有%search%
文本,并將其替換為%replace%
文本。!filename:%search%=%replace%!
是批處理文件中用于進(jìn)行文本替換的語法。ren "%%f" "!newFilename!%%~xf"
:這一行代碼使用ren
命令(縮寫為rename
)來重命名文件。%%f
表示當(dāng)前文件的占位符。!newFilename!
是上一行代碼中計(jì)算出的新文件名,%%~xf
表示當(dāng)前文件的擴(kuò)展名。因此,這一行代碼將當(dāng)前文件的名稱從%%f
更改為!newFilename!
,并保留原始文件的擴(kuò)展名。
總之,這個(gè)批處理文件用于查找文件名中的特定文本(%search%
)并將其替換為其他文本(%replace%
),然后將文件重命名為新的文件名,同時(shí)保留原始文件的擴(kuò)展名。
bat的輸出終端亂碼
如果您在運(yùn)行批處理文件時(shí)在終端中看到亂碼,這可能是由于字符集或編碼問題引起的。
字符集不匹配:確保終端和批處理文件都使用相同的字符集,通常是 UTF-8。可以通過在批處理文件的開頭添加以下行來設(shè)置字符集:
@echo off chcp 65001 (將字符集設(shè)置為 UTF-8)
到此這篇關(guān)于Windows系統(tǒng)使用bat批量修改文件名的使用示例的文章就介紹到這了,更多相關(guān)bat批量修改文件名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
批處理bat判斷一個(gè)文件在最近5分鐘內(nèi)是否被更新過的代碼
這篇文章主要介紹了批處理bat判斷一個(gè)文件在最近5分鐘內(nèi)是否被更新過的代碼,需要的朋友可以參考下2014-07-07用批處理上傳文件到ftp目錄下的實(shí)現(xiàn)方法
這篇文章主要介紹了用批處理上傳文件到ftp目錄下的實(shí)現(xiàn)方法的相關(guān)內(nèi)容,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-05-05統(tǒng)計(jì)每個(gè)數(shù)的重復(fù)次數(shù),并按照重復(fù)次數(shù)由高到低排序的批處理
統(tǒng)計(jì)每個(gè)數(shù)的重復(fù)次數(shù),并按照重復(fù)次數(shù)由高到低排序2009-05-05Chdir (Cd) 顯示當(dāng)前目錄的名稱,或更改當(dāng)前的文件夾
Chdir (Cd) 顯示當(dāng)前目錄的名稱,或更改當(dāng)前的文件夾...2007-09-09BAT批處理判斷服務(wù)是否正常運(yùn)行的方法(批處理命令綜合應(yīng)用)
批處理就是對(duì)某對(duì)象進(jìn)行批量的處理,通常被認(rèn)為是一種簡化的腳本語言,它應(yīng)用于DOS和Windows系統(tǒng)中。這篇文章主要介紹了BAT批處理判斷服務(wù)是否正常運(yùn)行(批處理命令綜合應(yīng)用),需要的朋友可以參考下2020-02-02