|
本帖最后由 chiannet 于 2018-7-3 18:11 编辑
- @ECHO OFF
- SETLOCAL ENABLEDELAYEDEXPANSION
- SET "TP=%~DP0"
- REM 原始.TXT所在路径名,赋值给TP,以“\”结尾。
- IF NOT EXIST "%TP%原始.TXT" (ECHO.&ECHO 未发现"%TP%原始.TXT"
- PAUSE >NUL&CLS&EXIT)
- :N
- CLS&ECHO.&ECHO.&ECHO.&ECHO.
- SET /P ^F=输入定位符号/字符串并回车:
- SET ^A=!^F!
- SET /A FSL=0
- :FSL
- SET ^A=!^A:~0,-1!
- SET /A FSL+=1
- IF "!A!"=="" GOTO M
- GOTO FSL
- :M
- IF %FSL% EQU 1 (SET SY=符号) ELSE (SET SY=字符串)
- CLS&SET AX=
- ECHO.&ECHO.
- ECHO.&ECHO 按需求变换“原始.TXT”中每行字符串
- ECHO.&ECHO.
- ECHO.&ECHO 1、取得最左“!^F!”之前的字符
- ECHO.&ECHO 2、取得最左“!^F!”之后的字符
- ECHO.&ECHO 3、取得最右“!^F!”之前的字符
- ECHO.&ECHO 4、取得最右“!^F!”之后的字符
- ECHO.&ECHO 5、退出
- ECHO.&ECHO.
- SET /P S=输入代码并回车:
- IF NOT "%S%"=="" SET S=%S:~0,1%
- IF %S% EQU 1 (SET AX=左&SET BX=前)
- IF %S% EQU 2 (SET AX=左&SET BX=后)
- IF %S% EQU 3 (SET AX=右&SET BX=前)
- IF %S% EQU 4 (SET AX=右&SET BX=后)
- IF %S% EQU 5 EXIT
- IF "%AX%"=="" (ECHO.&ECHO 输入无效,请重新输入!
- PAUSE >NUL&CLS&GOTO M)
- SET PT="%TP%最%AX%定位%SY%之%BX%的字符.TXT"
- DEL %PT% /F >NUL 2>NUL
- FOR /F "DELIMS=" %%I IN ('TYPE "%TP%原始.TXT"') DO (
- SET ^A=%%I
- SET ^B=%%I
- CALL :L "!^B!"
- )
- IF EXIST %PT% (CLS&ECHO.&ECHO %PT% 已创建。&ECHO.&ECHO.&PAUSE)
- GOTO N
- :L
- IF %S% EQU 1 (SET ^C=!^B:~0,%FSL%!
- IF !^C!==!^F! (SET ^R=“!^F!”位于此行首位。&GOTO E))
- IF %S% EQU 4 (SET ^C=!^B:~-%FSL%!
- IF !^C!==!^F! (SET ^R=“!^F!”位于此行末尾。&GOTO E))
- SET ^R=此行找不到指定的定位%SY%“!^F!”!&SET /A N=%FSL%
- :R
- SET /A M=%N%-%FSL%
- IF %S% EQU 4 (
- SET ^B=!^A:~-%N%!
- SET ^D=!^B:~0,%FSL%!
- IF !^D!==!^F! (SET ^R=!^A:~-%M%!&GOTO E)
- IF !^B!==!A! GOTO E
- )
- IF %S% EQU 3 (
- SET ^D=!^B:~-%FSL%,%FSL%!
- IF !^D!==!^F! (SET ^R=!^B:~0,-%FSL%!&GOTO E)
- SET ^B=!^B:~0,-1!
- )
- IF %S% EQU 2 (SET ^D=!^B:~0,%FSL%!
- IF !^D!==!^F! (SET ^R=!^B:~%FSL%,100000!&GOTO E)
- SET ^B=!^B:~1,100000!
- )
- IF %S% EQU 1 (
- SET ^B=!^A:~0,%N%!
- SET ^D=!^B:~-%FSL%!
- IF !^D!==!^F! (SET ^R=!^A:~0,%M%!&GOTO E)
- IF !^B!==!^A! GOTO E
- )
- SET /A N+=1
- IF %S% GTR 1 (IF %S% LSS 4 (IF "!B!"=="" GOTO E))
- GOTO R
- :E
- IF %S% GTR 1 (IF %S% LSS 4 (IF "!R!"=="" SET ^R=有且仅有一个“!^F!”位于此行最%BX%位。))
- ECHO !^R!>>%PT%
- GOTO :EOF
复制代码
这是个综合应用
截取特征符号前后的字符.7z
(1.15 KB, 下载次数: 4)
|
|