前言
今天從網上下載了點ASP.NET的視頻,但是由於是免費的,所以有很多垃圾信息
更討厭的是,每個文件名也都有非常長的一大長串垃圾廣告,需要批量刪除這些文件名中的廣告字符串
如圖:
目的
要做一個程序來批量修改文件名,將一個文件夾下所有的文件的文件名,修改為其上級目錄的名字
注意不是修改更名為同一級目錄名,而把自己的名字更名為自己所在的上一級目錄的名字
如上圖,目的是把每個視頻文件改名為其所在目錄名
使用方法
把要執行的包含所有文件的總文件夾拖動到bat中,會顯示執行效果,如果確認則真正執行
處理完成后效果圖:
所有文件都更名為其上級目錄名
注意
1,當文件夾內有多個文件,且擴展名相同,則會發生文件名沖突錯誤,會導致從當前文件夾內從第二文件起之后的文件都不更名
請自行編輯文件過濾信息,以保證每個文件夾下被更名文件都是唯一的
2,當文件名中含有特殊字符時。如! 或&符號等會導致更名失敗,可以先執行以下命令
for /f "delims=" %i in ('dir /s /b /a:-d 【要處理文件的目錄】\*.*') do @ren "%i" "a%~xi"
先把所有文件的文件名都更名為任意字符,然后再批量修改即可
批處理代碼,保存至bat文件中運行即可:

@echo off :start setlocal enabledelayedexpansion set isrun=n echo 請把包含要處理的文件的[文件夾]拖動到此處,回車確定 set dir=n&set /p dir= if "%dir:"=%"=="n" cls&goto start cls&echo ==================================== :run for /f "delims=" %%i in ('dir /s /b /a:-d %dir%\*.*') do ( set full=%%~dpnxi set exten=%%~xi set path=%%~dpi set path=!path:~0,-1! for /f "delims=" %%j in ("!path!") do set path=%%~nj if /i "!isrun!"=="n" ( echo ren "!full!" "!path!!exten!" ) else ( ren "!full!" "!path!!exten!" echo 更名為:"!path!!exten!" ) ) echo ==================================== if /i "%isrun%"=="n" ( echo 即將執行以上操作,是否執行[Y/N] set isrun=n&set /p isrun= if /i "!isrun!"=="y" ( goto run ) else ( cls&goto start ) ) else ( echo.&echo 更名完成! echo 任意鍵返回&pause>nul&cls&goto start )
——原文發表於2012-7-24 12:26