|
|
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 定义随机字符串长度
set "length=8"
:: 先处理子文件夹
for /d /r %%i in (*) do (
:: 生成随机字符串
set "rand="
for /l %%j in (1,1,!length!) do (
set "chars=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set /a "randnum=!random!%%62"
for %%k in (!randnum!) do set "rand=!rand!!chars:~%%k,1!"
)
:: 获取文件夹所在路径和原名称
set "folderpath=%%~dpi"
set "foldername=%%~nxi"
:: 避免重命名当前脚本所在目录
if not "!folderpath!!foldername!"=="%~dp0." (
:: 重命名文件夹
ren "%%i" "!rand!" >nul 2>&1
)
)
:: 处理文件
for /r %%i in (*) do (
:: 跳过当前批处理文件
if not "%%~nxi"=="%~nx0" (
:: 生成随机字符串
set "rand="
for /l %%j in (1,1,!length!) do (
set "chars=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set /a "randnum=!random!%%62"
for %%k in (!randnum!) do set "rand=!rand!!chars:~%%k,1!"
)
:: 保留文件扩展名
ren "%%i" "!rand!%%~xi" >nul 2>&1
)
)
endlocal
echo 重命名完成!
pause >nul |
|