|
本帖最后由 chiannet 于 2018-6-29 09:09 编辑
- @ECHO OFF
- SETLOCAL ENABLEDELAYEDEXPANSION
- SET A1=左&SET A2=右&SET B1=前&SET B2=后
- :N
- CLS
- ECHO.&ECHO.
- ECHO.&ECHO.
- SET /P FS=输入定位符号并回车:
- REM 定位符号,赋值给FS,本批处理只能处理长度为1的单字符。
- IF "%FS%"=="" (ECHO.&ECHO 输入无效,请重新输入!
- PAUSE >NUL && CLS && GOTO N) ELSE (SET FS=%FS:~0,1%)
- SET "TP=%~DP0"
- REM 原始.TXT所在路径名,赋值给TP,以“\”结尾。
- IF NOT EXIST "%TP%原始.TXT" (ECHO.&ECHO 未发现"%TP%原始.TXT"
- PAUSE >NUL && CLS && EXIT)
- :M
- CLS
- SET AX=&SET BX=
- ECHO.&ECHO.
- ECHO.&ECHO 按需求变换“原始.TXT”中每行字符串
- ECHO.&ECHO.
- ECHO.&ECHO 1、取得最%A1%“%FS%”之%B1%的字符
- ECHO.&ECHO 2、取得最%A1%“%FS%”之%B2%的字符
- ECHO.&ECHO 3、取得最%A2%“%FS%”之%B1%的字符
- ECHO.&ECHO 4、取得最%A2%“%FS%”之%B2%的字符
- ECHO.&ECHO 5、退出
- ECHO.&ECHO.
- SET /P AB=输入代码并回车:
- IF NOT "%AB%"=="" SET AB=%AB:~0,1%
- IF "%AB%"=="1" (SET AX=%A1%&SET BX=%B1%)
- IF "%AB%"=="2" (SET AX=%A1%&SET BX=%B2%)
- IF "%AB%"=="3" (SET AX=%A2%&SET BX=%B1%)
- IF "%AB%"=="4" (SET AX=%A2%&SET BX=%B2%)
- IF "%AB%"=="5" EXIT
- IF "%AX%"=="" (ECHO.&ECHO 输入无效,请重新输入!
- PAUSE >NUL && CLS && GOTO M)
- SET PT="%TP%最%AX%定位符之%BX%的字符.TXT"
- DEL %PT% /F >NUL 2>NUL
- FOR /F "DELIMS=" %%I IN ('TYPE "%TP%原始.TXT"') DO CALL :L "%%I"
- IF EXIST %PT% (CLS&ECHO.&ECHO %PT% 已创建。&ECHO.&ECHO.&PAUSE)
- GOTO M
- :L
- SET "B=%~1"
- IF "%AB%"=="1" (IF "%B:~0,1%"=="%FS%" (SET "RE=有一个“%FS%”位于此行首位。"&GOTO E))
- IF "%AB%"=="4" (IF "%B:~-1%"=="%FS%" (SET "RE=有一个“%FS%”位于此行末尾。"&GOTO E))
- SET RE=此行找不到指定的定位符号"%FS%"!
- SET /A N=1
- SET "A=%~1"
- :R
- SET /A NN=%N%-1
- IF "%AB%"=="4" (SET "B=!A:~-%N%!"
- SET "D=!B:~0,1!"
- IF "!D!"=="%FS%" (SET "RE=!A:~-%NN%!"&GOTO E)
- IF "!B!"=="%A%" GOTO E)
- IF "%AB%"=="3" (SET D=%B:~-1,1%
- SET B=!B:~0,-1!
- IF "!D!"=="%FS%" (SET "RE=!B!"&GOTO E))
- IF "%AB%"=="2" (SET D=%B:~0,1%
- SET B=!B:~1,100000!
- IF "!D!"=="%FS%" (SET "RE=!B!"&GOTO E))
- IF "%AB%"=="1" (SET "B=!A:~0,%N%!"
- SET "D=!B:~-1!"
- IF "!D!"=="%FS%" (SET "RE=!A:~0,%NN%!"&GOTO E)
- IF "!B!"=="%A%" GOTO E)
- SET /A N=%N%+1
- IF %AB% GTR 1 (IF %AB% LSS 4 (IF "%B%"=="" GOTO E))
- GOTO R
- :E
- IF %AB% GTR 1 (IF %AB% LSS 4 (IF "%RE%"=="" SET "RE=有且仅有一个“%FS%”位于此行最%BX%位。"))
- ECHO %RE%>>%PT%
- GOTO :EOF
复制代码 |
|