| |
| |
| |
| @ECHO OFF |
| |
| Rem XXXXXXXXXXXXXXXXXXXXXXXX 参数整理 XXXXXXXXXXXXXXXXXXXXXXXX |
| SET "Parameter=%*" |
| IF NOT DEFINED Parameter ( |
| CALL :HELP |
| PAUSE 1>NUL |
| CALL :EXPORT && EXIT /B 1 |
| ) ELSE ( |
| ECHO [%Parameter%] | FIND /I "?" 1>NUL && ( CALL :HELP && CALL :EXPORT && EXIT /B 1 ) |
| ) |
| |
| SET "Parameter1="&&SET "Parameter2="&&SET "Parameter3="&&SET "Parameter4="&&SET "Parameter5=" |
| :Parameter |
| SET "Parameter=%~1" |
| |
| IF NOT DEFINED Parameter GOTO EndParameter |
| %Parameter1% IF /I "%Parameter:~0,7%" EQU "Chinese" ( SET "Chinese=%Parameter:~8%" && SET "Parameter1=Rem" ) && GOTO IFParameter |
| %Parameter2% IF /I "%Parameter:~0,6%" EQU "Return" ( SET "Return=%Parameter:~7%" && SET "Parameter2=Rem" ) && GOTO IFParameter |
| %Parameter3% IF /I "%Parameter:~0,8%" EQU "WordBook" ( SET "WordBook=%Parameter:~9%" && SET "Parameter3=Rem" ) && GOTO IFParameter |
| %Parameter4% IF /I "%Parameter:~1%" EQU "QP" ( SET "QP=%Parameter:~1%" && SET "Parameter4=Rem" ) && GOTO IFParameter |
| %Parameter5% IF /I "%Parameter:~1%" EQU "SZ" ( SET "SZ=%Parameter:~1%" && SET "Parameter5=Rem" ) && GOTO IFParameter |
| ECHO. && CALL :ERROR "%Parameter%" && CALL :EXPORT && EXIT /B 12 |
| :IFParameter |
| SHIFT /1 |
| GOTO Parameter |
| :EndParameter |
| IF DEFINED QP ( IF DEFINED SZ ( CALL :ERROR "QO与SZ不可同时存在" &&CALL :EXPORT && EXIT /B 13 & EXIT /B 13 ) ) |
| ::测试时显显示各参数的值 |
| IF 1 LSS 0 ( |
| ECHO 1.中文字符串 Chinese=%Chinese% |
| ECHO 2.输出返回值 Return=%Return% |
| ECHO 3.字典路径 WordBook=%WordBook% |
| ECHO 4.QP: [%QP%] |
| ECHO 5.SZ: [%SZ%] |
| PAUSE |
| ) |
| |
| Rem XXXXXXXXXXXXXXXXXXXXXXXX 准备 XXXXXXXXXXXXXXXXXXXXXXXX |
| |
| :WORDBOOK0 |
| IF EXIST %WORDBOOK% GOTO WORDBOOK1 |
| ECHO.&&ECHO.&&ECHO.&&ECHO. |
| ECHO.请输入《字典》所在路径: |
| ECHO.[Q]:退出 |
| ECHO. |
| SET "WORDBOOK=" |
| SET /P WORDBOOK= |
| IF /I "%WORDBOOK%" EQU "Q" ( CALL :EXPORT && EXIT /B 1 & EXIT /B 1 ) |
| IF EXIST "%WORDBOOK%" GOTO WORDBOOK1 |
| IF EXIST "%WORDBOOK%.TXT" ( SET "WORDBOOK=%WORDBOOK%.TXT" && GOTO WORDBOOK1 ) |
| ECHO. |
| CALL :ERROR "输入错误或没有找到字典" |
| ECHO. |
| GOTO WORDBOOK0 |
| :WORDBOOK1 |
| |
| Rem XXXXXXXXXXXXXXXXXXXXXXXX 中文转拼音 XXXXXXXXXXXXXXXXXXXXXXXX |
| IF DEFINED SZ ( SET "REMSZ=" ) ELSE ( SET "REMSZ=REM" ) |
| :StartMain |
| SET "VARIABLE=%Chinese:~,1%" |
| IF /I "%VARIABLE%" EQU " " ( SET "OUTPUT= " && GOTO ENDOUTPUT3 ) |
| IF /I "%VARIABLE%" EQU " " ( SET "OUTPUT= " && GOTO ENDOUTPUT3 ) |
| IF NOT DEFINED Chinese GOTO EndMain |
| FOR /F "EOL=; TOKENS=1,*" %%I IN ( 'TYPE %WORDBOOK%' ) DO ( |
| IF "%VARIABLE%" EQU "%%~I" ( |
| SET "OUTPUT=%%~J" |
| |
| ) |
| ) |
| IF DEFINED OUTPUT GOTO ENDOUTPUT1 |
| ECHO 在字典中,没有找到“%VARIABLE%”的拼音 |
| ECHO 请手动输入该字的拼音: |
| ECHO [回车]:跳过 |
| ECHO. |
| SET "OUTPUT=" |
| SET /P OUTPUT=. %VARIABLE%: |
| ECHO. |
| IF NOT DEFINED OUTPUT GOTO ENDOUTPUT3 |
| :ENDOUTPUT1 |
| ECHO [%OUTPUT%] | FIND /I "&" 1>NUL || GOTO ENDOUTPUT2 |
| ECHO. |
| ECHO 字符串 [ %Chinese% ] 中的“%VARIABLE%”为多音字, |
| ECHO 请手动输入该字的拼音: |
| ECHO [回车]:跳过 |
| ECHO. |
| SET "OUTPUT=" |
| SET /P OUTPUT=. %VARIABLE%: |
| ECHO. |
| IF NOT DEFINED OUTPUT GOTO ENDOUTPUT3 |
| :ENDOUTPUT2 |
| %REMSZ% SET "OUTPUT=%OUTPUT:~0,1%" |
| :ENDOUTPUT3 |
| SET "OPPY=%OPPY%%OUTPUT%" |
| SET "OUTPUT=" |
| SET "Chinese=%Chinese:~1%" |
| GOTO StartMain |
| :EndMain |
| |
| SET "%Return%=%OPPY%" |
| |
| CALL :EXPORT |
| EXIT /B 0 |
| |
| |
| Rem XXXXXXXXXXXXXXXXXXXXXXXX 帮助 XXXXXXXXXXXXXXXXXXXXXXXX |
| :HELP |
| ECHO. |
| ECHO CtoP.bat 汉字转拼音 by Bo (IBM) [20090424] |
| ECHO 通过字典(WORDBOOK.txt)查找对应的拼音, |
| ECHO 用户可以手动修改字典中的拼音 |
| ECHO 支持阿拉伯数字转拼音 |
| ECHO 遇到多音字或字典中未收录的文字, |
| ECHO 程序会暂停执行,并要求用户手动输入 |
| ECHO. |
| ECHO 用法: |
| ECHO %~NX0 "Chinese-String" Return-Variable [WordBook-PATH] [/QP ^| /SZ] |
| ECHO. |
| ECHO 参数说明: |
| ECHO. |
| ECHO String: 中文字符串 |
| ECHO Variable:输出返回值变量 |
| ECHO PATH: 字典路径 |
| ECHO /QP: 全拼(默认) |
| ECHO /SZ: 简拼(首字母) |
| ECHO. |
| ECHO 部分特殊字符及标点不支持 |
| ECHO. |
| ECHO. |
| GOTO :EOF |
| |
| |
| |
| |
| |
| Rem XXXXXXXXXXXXXXXXXXXXXXXX 报错 XXXXXXXXXXXXXXXXXXXXXXXX |
| :ERROR |
| SET "ERRORNUM=%~1" |
| ECHO.&&ECHO. |
| COLOR 0C |
| ECHO 错误:%ERRORNUM% |
| ECHO. |
| PAUSE |
| ECHO. |
| COLOR 1F |
| GOTO :EOF |
| |
| Rem XXXXXXXXXXXXXXXXXXXXXXXX 出口 XXXXXXXXXXXXXXXXXXXXXXXX |
| :EXPORT |
| SET "Parameter=" |
| SET "Parameter1=" |
| SET "Parameter2=" |
| SET "Parameter3=" |
| SET "Parameter4=" |
| SET "Parameter5=" |
| SET "Chinese=" |
| SET "Return=" |
| SET "WordBook=" |
| SET "QP=" |
| SET "SZ=" |
| SET "ERRORNUM=" |
| SET "VARIABLE=" |
| SET "OPPY=" |
| ECHO.&&ECHO. |
| GOTO :EOFCOPY |