使用批处理

时间:2017-02-11 16:39:11

标签: batch-file

我有这样的文件:

N1 G17 G90
N3 G54
N5 S24000
N7 M03
N9 G00 X2675.766 Y427.409 Z730
N11 G00 X2675.766 Y427.409
N13 G00 X2675.766 Y427.409
N15 G00 X2675.766 Y427.409 Z505
N17 F4000
N19 G01 X2675.766 Y427.409 Z447.5
N21 F4000
N23 G01 X2565.966 Y475.823 Z447.5
N25 F4000
N27 G02 X1852.832 Y871.38 Z447.5 I4373.42 J4575.032
N29 G03 X705.065 Y871.38 Z447.5 I1278.948 J28.138
N31 G02 X-8.069 Y475.823 Z447.5 I-1815.523 J4575.032
N33 M05
N35 M30

X和Y可以是正常数字(1,2,3,4,5等)或十进制数字(1.134,106.304等) 我正在寻找一种向X和/或Y添加指定数字的方法。 对于evry线,添加的数字是相同的。 如果我向X添加100,则所有带X的行都应该更改为X(数字+ 100)。 同样适用于Y

X,Y,Z,I,J并不总是存在 有时它只是 X,Y或X,Y,Z或X,Y,I,J

所以把evrything放在一起 我需要一个批处理文件,我可以在X或Y之后为每个数字添加指定的数字。

1 个答案:

答案 0 :(得分:4)

@echo off
setlocal EnableDelayedExpansion

for /F "tokens=1-4*" %%a in (input.txt) do (
   if "%%d" equ "" (
      echo %%a %%b %%c
   ) else (
      for /F "tokens=1,2 delims=X." %%C in ("%%c") do (
         set /A X=%%C+200
         if "%%D" neq "" set "X=!X!.%%D"
      )
      for /F "tokens=1,2 delims=Y." %%D in ("%%d") do (
         set /A Y=%%D+100
         if "%%E" neq "" set "Y=!Y!.%%E"
      )
      echo %%a %%b X!X! Y!Y! %%e
   )
)