说明
功能实现使用的是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