說明
功能實現使用的是Windows的Bat命令方式。沒有使用Python的方式去做,Bat是現學的,語法上不是很熟悉,應該有更簡單的方式。
剛開始想在網上找個現成的,結果發現都只有在當前曾經操作,對於嵌套的就沒辦法了。
後來在使用嵌套的時候,發現ren命令在替換的時候,後面的target的部分不能使用目錄層級方式。這個地方沒有找到合適的方式,使用tokens寫死了。
代碼
說明:tokens=6,7 這個地方是寫死的,沒有使用循環的方式去獲取最後一個下標的內容。語法不熟悉。後續熟悉的時候再改過來
@echo off
Setlocal Enabledelayedexpansion
::指定起始文件夾
set DIR="%cd%"
echo DIR=%DIR%
::要替換的部分
set "str=需要替換的內容"
:: 參數 /R 表示需要遍歷子文件夾,去掉表示不遍歷子文件夾
:: %%f 是一個變量,類似於迭代器,但是這個變量只能由一個字母組成,前面帶上%%
:: 括號中是通配符,可以指定後綴名,*.*表示所有文件
for /R %DIR% %%i in (*.*) do (
::tokens=6,7 這個地方是寫死的,沒有使用循環的方式去判斷最後一個斜槓
for /f "tokens=6,7 delims=\" %%a in ("%%i") do (
:: set "var=%%a" ren "%%i" "!var:%str%=!"
set "var=%%a" & ren "%%i" "!var:%str%=!"
)
)
for /f "delims=" %%i in ('dir /b *.*') do (
set "vars=%%i" & ren "%%i" "!vars:%str%=!")
pause>nul