批处理-将某个文本文件中的某些数据行复制到另一个预先制作的文本文件中的某些留置权



一直在努力创建一个批处理文件,它可以从一个文本文件中提取某些文本行,然后将提取的数据粘贴到另一个文本文件中。所取的线条将始终是相同的,它们将被粘贴的线条也将始终是相同的。我一直在寻找,并设法得到它的一部分工作,但因为我正在寻找使用输出格式的文本文件,我无法弄清楚如何粘贴在预生成行末尾的数据可以有任何帮助吗?

到目前为止,我有以下代码,这是不工作-

@Echo ON
setlocal enableextensions
set me=%~n0
set parent=%~dp0
set varhome=inputvariables.txt
set formathome=formatofvariables.txt
set outputfile=output.txt
set locationname=SITENAME
set /a i=1
for /F %%o IN (%varhome%) DO (
set "line!i!=%%o"
set /a i=!i!+1
)
set /a k=1
for /F %%l IN (%formathome%) DO (
set "line!k!=%%l"
set /a k=!k!+1
)
echo %locationname% - >output.txt
echo %formathome2% - %line2%>>output.txt
echo %formathome7% - %line7%>>output.txt
echo %formathome15% - %line15%>>output.txt
echo %formathome16% - %line16%>>output.txt
pause
<标题>

文件内容inputvariables.txt(该文件包含没有标题或上下文的原始数据,大多数变量当前不使用,但将来可能会在单独的行中使用每个变量)

variable1

如上所述的操作

variable3

variable4

variable5

variable6

variable7

variable8

variable9

variable10

等等……

formatofvariables.txt(该文件包含我想使用的原始数据的标题,但行都乱了顺序,只使用了一些数据)

heading1 -这是从用户在

上面设置的sitename var中获取的标题。空白行,

heading2 -这是文件-inputvariables.txt中变量2的标题

空白行,

heading3 -这是文件-inputvariables.txt中变量15的标题

空白行,

heading4 -这是文件-inputvariables.txt中变量16的标题

空白行,

heading5 -这是文件-inputvariables.txt中变量7的标题

output.txt(该文件是标题和变量data的组合,放在上面建议的正确行中)

让我们看看这个片段:

seti=1
for /F %%l IN (%varhome%) DO (
set line!i!=%%l
set /a i=!i!+1
)

OK -第一行有语法错误。"should"beset i=1

使用set "var=value"设置字符串值-这避免了尾随空格引起的问题。set /a不需要引号

所以,set /a i=1set "line!i!=%%l"

从文件%varhome%中取出每一行,并创建包含每一行的变量line1 line2 line...

现在,如果你要对另一个文件%formathome%重复此操作并将其放入另一组变量中,通过将line更改为format,那么你将在format1 format2 format...

中拥有

文件的内容。获得数据后,现在决定要写什么。

如果只有你指定的4行,那么你需要

echo %format2% - %line2%
echo %format7% - %line7%

等。

将结果显示在窗口中。

要将该数据输出到文件,需要

echo %format2% - %line2%>OutputFile.txt
echo %format7% - %line7%>>OutputFile.txt
echo %format15% - %line15%>>OutputFile.txt

注意:>前面没有空格。如果在那里放一个空格,那么该行将在文件中获得一个终端空间,这可能很难检测到。

还注意:第一行有一个>。这将创建一个新文件。其余的输出行有两个>字符,它们将数据附加到文件中。

更方便的形式是

(
echo %format2% - %line2%
echo %format7% - %line7% 
echo %format15% - %line15%
)>OutputFile.txt

所有echo命令的输出都在"代码块"中。(命令的圆括号序列)累积到文件

根据您的实际输出数据需求(抱歉,仍然不清楚),可以采用其他策略。

最新更新