Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批输入将多行转换为文本_Batch File - Fatal编程技术网

Batch file 使用批输入将多行转换为文本

Batch file 使用批输入将多行转换为文本,batch-file,Batch File,我正在寻找一种使用批处理文件向文本文件添加多行的方法。 我在一台数控机床上工作,它有两个方向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是

我正在寻找一种使用批处理文件向文本文件添加多行的方法。 我在一台数控机床上工作,它有两个方向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开始 从那里我想能够广告多行(不知道有多少)输入到一个批处理程序

类似于tis:

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
这可能吗?
如果是这样,有人能解释一下我是如何做到的吗

你的问题令人困惑。您给出了一些与问题无关的细节,但只是使其描述混乱。另一方面,您没有给出重要的细节:行是否总是用奇数编号?如果是这样的话,这个例子会让人感到困惑,因为它需要始终插入行
11 13 15 17 19
,因此行
N21
N23
都在末尾。在这种情况下,行数是五行,但是“添加多行(不知道有多少行)”短语是错误的!最后一行不是总是编号为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

第一行使用
echo“line 1”>file.txt

对于其余部分,请使用
echo“otherlines”>>file.txt

是的,这是可能的……好吧,我有点傻……,更改了帖子,那么你对我的问题也有解决方案吗?:)很抱歉把我的问题弄糊涂了,我不习惯赖特的英语,但那正是我需要的。前5行是启动机器发动机和移动物体的线,X、Y是机器可以移动的方向,最后2行是关闭所有物体的线,“N”只是指定机器所在的线,它与+2一致,所以如果你想在两者之间添加一行,仍然有地方手动添加一行:)谢谢这篇文章真的帮助了我。我试着在旧电脑上运行它,但它不想工作?你知道我能做些什么吗?