永发信息网

有请bat高手帮忙,增加和删除文本内容

答案:3  悬赏:50  手机版
解决时间 2021-02-20 07:09
  • 提问者网友:龅牙恐龙妹
  • 2021-02-20 03:26
文件是.nc后缀的,可以用文本打开,内容如下(删减了部分无关内容):

%
N1 G00 G90 G54
N2 G21
N3 G28 G91 Z0.0
N8 G90 G54
N9 G5P10000
N10 G00 X0. Y0.
N2931 G5P0
N2932 M05
N2933 G28 G91 Z0.0
N2934 M30
N2935 (TOTAL Machine Time: 139.87)
%

需要在第一个%下,或者"N1 G"开头的一行上新增一行,添加"O6000“;
查找到包含"G21"的一行,删除该行;
查找到包含"G5P10000"的一行,删除该行;
查找到包含"G5P0"的一行,删除该行。

最后需要的效果如下

%
O6000
N1 G00 G90 G54
N3 G28 G91 Z0.0
N8 G90 G54
N10 G00 X0. Y0.
N2932 M05
N2933 G28 G91 Z0.0
N2934 M30
N2935 (TOTAL Machine Time: 139.87)
%

有很多的这种文件,都需要这么做,我网上查到运用.bat可以做到,不过并不懂这个,还是需要麻烦大师们帮助了。不用担心会删除到其他的行,也无需重新对每一行的"N"开头的编号重新编号,最先完美地达到效果的回答将被采纳并领赏。
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-20 04:39
@Echo Off
For /f "tokens=*" %%i in ('dir /a-d /b "%~dp0*.nc"') do (
For /f "tokens=* delims=" %%j in ('Findstr /i /r /v "G21\> G5P10000\> G5P0\>" "%%i"') do (
Echo %%j|Findstr /i /r "\<N1.G")&&(Echo O6000&Echo %%j)>>%%~ni.tmp||(Echo %%j)>>%%~ni.tmp
Move "%%~ni.tmp" "%%i">nul)
Pause考虑到.nc文件很多,所以请把批处理和.nc文件放在一起,会处理批处理所在文件夹下的所有.nc文件.
注意:代码为直接修改
全部回答
  • 1楼网友:猎心人
  • 2021-02-20 05:55
按你(给的例子)的要求,(在原文件上)修改指定文件,如果还有其它特殊字符,再说。 测试时备份原文件 @echo off setlocal enabledelayedexpansion set F=1.nc set K=0&echo 0>temp>nul for /f "delims=" %%i in ('type "%F%"') do ( if !K! lss 1 (echo %%i>>temp) if !K!==1 (echo O6000>>temp&set/a K+=1) if !K! GTR 1 (echo %%i|findstr /i "G21 G5P10000 G5P0" 1>nul 2>nul||echo %%i>>temp) if "%%i"=="%%" set/a K+=1) del "%F%" ren temp "%F%" pause
  • 2楼网友:雾月
  • 2021-02-20 05:49
@echo off setlocal enabledelayedexpansion set a=0 for /r %%q in (*.nc) do ( set name=%%~nq for /f "delims=*" %%i in (%%q) do ( set /a a+=1 echo %%i | findstr "G21" &&set v1=!a! echo %%i | findstr "G5P10000" &&set v2=!a! echo %%i | findstr "G5P0" &&set v3=!a! ) cls set b=0 for /f "delims=*" %%i in (%%q) do ( set /a b+=1 if not !b!==!v1! ( if not !b!==!v2! ( if not !b!==!v3! ( if !b!==2 echo O6000>>new!name!.nc echo %%i>>new!name!.nc ) ) ) ) del %%q ren "new!name!.nc" "!name!.nc" ) 对当前目录下所有nc文件进行修改
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯