批处理或vbs删除文本行首和行尾关键词。

批处理或vbs删除文本行首和行尾关键词。比如文本内容:
你好123757676你好
15你好12aaa

删除行首尾你好,处理后内容
1237575676
15你好12aaa

@echo off
set /p before=请输入前面的字符
set /p after=请输入后面的字符
for /f "delims=" %%i in (1.txt) do (
if "%%i"=="" (
echo.>>2.txt
) else (
echo %before%%%i%after%>>2.txt
)
)
del 1.txt
ren 2.txt 1.txt
保存为123.bat 运行时保证123.bat和1.txt文件在同一目录下追问

你这是插入,不是删除?

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-29
@echo off & title 删除行首尾指定字符串 By 依梦琴瑶

::设置要处理的文件
set File=新建文本文档.txt

::设置行首关键字符
set BeginStr=你好

::设置行尾关键字符
set EndStr=你好

call :GetLength BeginStr B
call :GetLength EndStr E

(for /f "delims=" %%a in ('type "%File%"') do (
    set "Str=%%~a"
    call :CheckDelStr "%%Str:~,%B%%%" "%BeginStr%" "~%B%"
    call :CheckDelStr "%%Str:~-%E%%%" "%EndStr%" "~,-%E%"
    call echo %%Str%%
))>NewFile$.Log

::如果测试正常,请启用下面的命令,这样即可更新原始文件
::move /y NewFile$.Log "%File%" >nul

echo ok
pause
exit

:CheckDelStr
if "%~1"=="%~2" call set Str=%%Str:%~3%%
goto :eof

:GetLength
set N=0

:LenLoop
call set S=%%%~1:~%N%,1%%
if not defined S (
    set %~2=%N%
    goto :eof
)
set /a N+=1
goto LenLoop

居然是去年的题。

追问

这两天加班到很晚,很抱歉确认晚了,十分谢谢您了!

追答

您貌似确认错人了吧!采纳了一个错误答案。无语。

追问

是啊,真不好意思,能修改过来吗?或者把这个问题删了再问一遍,然后您再答一遍。这样可以吗。不能让错误的答案给网友看啊!

追答

点击举报,选择答案错误,并说明理由吧!
以后看仔细了再采纳,算了,就这样吧!


Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答