批处理

时间:2017-01-23 14:53:10

标签: batch-file

我正在寻找一种使用批处理文件向文本文件添加多行的方法。 我在CNC机器上工作,它有2个方向X(左( - )/右)Y(上)/下( - ) 它使用文本文件加载这些方向。 有几行总是放在开头和结尾。

These are at the start:

N1 G17 G90
N3 G54
N5 S3000
N7 M03
N9 F2000

This is at the end

N21 M05
N23 M30

之间你需要添加一些线来进行绘图 N11 G01 X0 Y0 // N号是它使用的线,G01是慢速或(G00)快速运动(保持不变),然后X0 Y0表示它开始的位置。 它始终以X0 Y0开头 从那里o我希望能够通过在批处理程序中输入它来多行(不知道多少行)。

像pis这样的东西:

set /p x="left/right = "
set /p y="up/down = "

N1 G17 G90>> file.txt 
N3 G54>> file.txt
N5 S3000>> file.txt
N7 M03>> file.txt
N9 F2000>> file.txt
N11 G01 X%x% Y%y%>>file.txt
N13 G01 X%x% Y%y%>>file.txt //some more different then the last
N15 G01 X%x% Y%y%>>file.txt //some more different then the last

N21 M05>>file.txt
N23 M30>>file.txt

是可以做到的吗? 如果是这样,有人可以尝试解释我是如何做到的吗?

2 个答案:

答案 0 :(得分:1)

你的问题令人困惑。您提供了与问题无关的几个细节,但只是让其描述混乱。另一方面,你 not 给出了重要的细节:这些行总是用奇数编号吗?如果是这样,该示例会令人困惑,因为它需要始终插入行11 13 15 17 19,因此行N21N23结束。在这种情况下,线条是5,但是然后"添加多条线(不知道有多少)"这句话错了!最后的行总是编号为N21和N23,但最终的数字是多少?如何指定移动是慢速(G01)还是快速(G00)?什么时候停止插入线?哇...... :/

无论如何,这是一种可能的解决方案:

@echo off
setlocal

(
echo N1 G17 G90
echo N3 G54
echo N5 S3000
echo N7 M03
echo N9 F2000
) > file.txt

cls
set n=9
:nextLine
echo/
choice /C SFE /M "Slow, Fast or End "
if errorlevel 3 goto endLines

if errorlevel 2 (set "g=00") else set "g=01"
set /p x="left/right = "
set /p y="up/down = "
set /A n+=2
>>file.txt echo N%n% G%g% X%x% Y%y%
goto nextLine

:endLines
set /A n21=n+2, n23=n+4
(
echo N%n21% M05
echo N%n23% M30
) >>file.txt

echo/
type file.txt

答案 1 :(得分:0)

对于第一行使用echo "line 1">file.txt 其余的使用echo "otherlines" >>file.txt