gpt4 book ai didi

batch-file - 将: insert lines from a . txt文件批处理成.txt文件

转载 作者:行者123 更新时间:2023-12-01 00:02:00 26 4
gpt4 key购买 nike

我对批处理文件完全陌生,一直在摆弄简单的命令。我已经想出了如何将文本移动到另一个文件、找到一行等,但我希望能够将几行文本添加到一个已经存在的文本文件中。这是我目前所拥有的:

@ECHO OFF
CD C:\Documents and Settings\SLZ1FH\Desktop\New Folder
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF %%A=="Ex3 3"(
TYPE Line_to_add.txt >> Examples.txt
)
)

如果 Examples.txt 包含:

  • Ex1 1
  • Ex2 2
  • Ex3 3
  • Ex4 4
  • Ex5 5

和 Line_to_add.txt 包含:

  • 这是一行
  • 这又是一条用来开玩笑的台词!

我希望输出为:

  • Ex1 1
  • Ex2 2
  • Ex3 3
  • 这是一行
  • 这又是一条用来开玩笑的台词!
  • Ex4 4
  • Ex5 5

天:)

解决方案

@ECHO OFF
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF "%%A" EQU "Ex3" (
TYPE Line_to_add.txt
)
) >> temp.txt
move /y temp.txt Examples.txt

最佳答案

你从不费心去问一个问题,但我可以看出你的代码有一些问题。

1) 您的 IF 语句已损坏,因为左括号被视为要比较的字符串的一部分。您的 parent 之前必须至少有一个空格。

2) 您的比较永远找不到匹配项,因为引号包含在比较中。您的值有空格,因此比较的两边都应该用引号引起来。

3) 您正试图插入到现有文件中,但这是行不通的。您的代码将简单地将文本附加到文件末尾。您必须将整个所需结果写入一个新的临时文件,然后将临时文件移动到原来的名称。

首先我将忽略文件的更新并展示如何将正确的输出显示到屏幕上。

@ECHO OFF
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF "%%A" EQU "Ex3 3" (
TYPE Line_to_add.txt
)
)

然后很容易将输出定向到文件并将文件移动到所需的名称。

@ECHO OFF
(
FOR /F "tokens=*" %%A IN (Examples.txt) DO (
ECHO %%A
IF "%%A" EQU "Ex3 3" (
TYPE Line_to_add.txt
)
)
) >temp.txt
move /y temp.txt Examples.txt

学习批处理语法和技术的好资源:

1) 每个命令都有在线帮助。只需在命令名称后添加 /? 选项。例如,DIR/?

2) 这里有一些网站有很好的信息

http://www.dostips.com/
http://judago.webs.com/
http://www.robvanderwoude.com/batchfiles.php

关于batch-file - 将: insert lines from a . txt文件批处理成.txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com