以下是程式碼
-------------------------------
@echo off
setlocal enabledelayedexpansion
echo 正在處理檔案名稱清理...
:: 針對目前資料夾中的所有檔案進行處理
for %%F in (*.*) do (
set "filename=%%~nF"
set "ext=%%~xF"
:: 移除非法字元 \ / : * ? " < > |
set "filename=!filename:\=!"
set "filename=!filename:/=!"
set "filename=!filename::=!"
set "filename=!filename:*==!"
set "filename=!filename:?=!"
set "filename=!filename:"=!"
set "filename=!filename:<==!"
set "filename=!filename:>==!"
set "filename=!filename:|=!"
:: 移除結尾的句點(.)
:remove_dot
if "!filename:~-1!"=="." (
set "filename=!filename:~0,-1!"
goto remove_dot
)
:: 移除關鍵字
set "filename=!filename:_vti_=!"
set "filename=!filename:_vti_rb=!"
set "filename=!filename:磁碟作業系統 名稱=!"
:: 重新命名檔案(若有變更)
if not "!filename!!ext!"=="%%~nxF" (
echo 重新命名: "%%~nxF" → "!filename!!ext!"
ren "%%~nxF" "!filename!!ext!"
)
)