如何用BAT批处理或VBS脚本处理文本达到以下效果?谢谢
用BAT批处理或VBS脚本处理同一文件夹下及其子文件夹下的文本文件,先判断每行行尾是否有括号内的全角标点(。!?”),如果没有则加一全角句号。输入文本结果时直接替换原来的...
用BAT批处理或VBS脚本处理同一文件夹下及其子文件夹下的文本文件,先判断每行行尾是否有括号内的全角标点(。!?”),如果没有则加一全角句号。输入文本结果时直接替换原来的文档。需要怎么写呢?谢谢!
展开
1个回答
展开全部
你好。你的要求,我是用BAT批处理完成的。
你需要的代码如下:
@echo off
set a=
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir *.txt /w /b /s /a') do (
call :cl "%%i"
)
exit
:cl
cd /d %~dp1
for /f "delims=" %%j in ('type %1') do (
call :wz "%%j" a
echo !a! >>"%~n1.tmp"
)
del %1 /f /q /a
ren "%~n1.tmp" "%~nx1"
goto :eof
:wz
set wz=%~1
if "%wz:~-1,1%" == "。" (set %2=%wz% & goto :eof)
if "%wz:~-1,1%" == "!" (set %2=%wz% & goto :eof)
if "%wz:~-1,1%" == "?" (set %2=%wz% & goto :eof)
if "%wz:~-1,1%" == "”" (set %2=%wz% & goto :eof)
set wz=%wz%。
set %2=%wz%
goto :eof
希望我的回答对你有帮助。
你需要的代码如下:
@echo off
set a=
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir *.txt /w /b /s /a') do (
call :cl "%%i"
)
exit
:cl
cd /d %~dp1
for /f "delims=" %%j in ('type %1') do (
call :wz "%%j" a
echo !a! >>"%~n1.tmp"
)
del %1 /f /q /a
ren "%~n1.tmp" "%~nx1"
goto :eof
:wz
set wz=%~1
if "%wz:~-1,1%" == "。" (set %2=%wz% & goto :eof)
if "%wz:~-1,1%" == "!" (set %2=%wz% & goto :eof)
if "%wz:~-1,1%" == "?" (set %2=%wz% & goto :eof)
if "%wz:~-1,1%" == "”" (set %2=%wz% & goto :eof)
set wz=%wz%。
set %2=%wz%
goto :eof
希望我的回答对你有帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询