发布网友 发布时间:2024-10-23 18:03
共2个回答
热心网友 时间:2024-10-24 17:43
@echo off & Title 添加首字母 By 依梦琴瑶
::以下代码请勿随意更改,以免运行出错。
setlocal enabledelayedexpansion
mode 65,10 & color 0a & cd /d %~dp0
set "PY_Data=Initials.dat"
if not exist "%PY_Data%" (
color 0c & mode 65,8
echo 当前目录下缺少 %PY_Data% 汉字首字母对照表数据库,请前往以下站点下载:
set "wA=ht"&set "wB=tps"&set "wC=://"&set "wD=pan"&set "wE=bai"
set "wF=du"&set "wG=com"&set "wH=/s/"&set "wI=11GbgbMUfDfX7V5V-6AOwIA"
echo, & echo !wA!!wB!!wC!!wD!.!wE!!wF!.!wG!!wH!!wI!
echo, & echo 提取码 46sw
ping 127.0.0.1 -n "6">nul
start "" "!wA!!wB!!wC!!wD!.!wE!!wF!.!wG!!wH!!wI!"
exit
)
echo 正在获取文字并添加中,请耐心等待。。。
for /f "delims=" %%a in ('dir /ad/b') do (
call:GetInitials "%%~a"
set FD=1
)
if not defined FD (
cls & echo 当前目录中不存在子目录
goto End
)
echo, & echo 此次首字母添加完毕,请按任意建退出。
:End
pause>nul
call :ToMe
exit
:GetInitials
set "Str=%~1" & set "DY=0"
echo !Str:~,1!
pause
echo !Str:~,1!|findstr /i "[A-Z]" >nul 2>nul && (
echo 【%Str%】 -- 跳过
goto :eof
)
for /f "tokens=1 delims==" %%b in ('findstr "!Str:~,1!" "%PY_Data%"') do (
set /a DY+=1
set "PY!DY!=%%~b"
)
if !DY! gtr 1 (
echo, & echo 【!Str:~,1!】是一个多音字,请手动选择它在【%Str%】中合适的拼音首字母:& echo,
for /l %%c in (1,1,!DY!) do (
echo %%c、!PY%%c!
)
echo, & set /p xz=请输入对应编号后回车确认:
call set "PY=%%PY!xz!%%"
) else (
if !DY! equ 0 (
echo, & echo 【!Str:~,1!】未被记录到【%PY_Data%】对照表数据库中。
echo 您可自行用记事本打开【%PY_Data%】,并补全数据库。& echo,
ping 127.0.0.1 -n "5">nul
) else (
set "PY=!PY1!"
)
)
if exist "!PY!%~1" (
echo 【%Str%】 -- 存在已添加首字母的同名文件夹【!PY!%~1】
goto :eof
)
echo 【%Str%】 --^> 【!PY!%~1】
ren "%~1" "!PY!%~1"
goto :eof
:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit
热心网友 时间:2024-10-24 17:44
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起运行
@echo off