gpt4 book ai didi

windows - 批处理文件将特定行从一个文本文件复制到另一个文本文件

转载 作者:可可西里 更新时间:2023-11-01 09:43:22 25 4
gpt4 key购买 nike

我对批处理脚本非常陌生。我对批处理脚本了解不多。

我的疑问是如何只将文本文件中的某些行复制到其他文本文件。

假设我的 File.txt 是

This is sample file.
I want copy this line.
Also this line.
But not this line.

我想复制第 2 行和第 3 行,但不使用它们的行号,因为可能会更改。

到目前为止我已经做了这么多:

@ECHO OFF
SET InFile=abc.txt
SET OutFile=Output.txt
IF EXIST "%OutFile%" DEL "%OutFile%"
SET TempFile=Temp.txt
IF EXIST "%TempFile%" DEL "%TempFile%"

IF EXIST "%OutFile%" DEL "%OutFile%"

FOR /F "tokens=*" %%A IN ('FINDSTR "I want" "%InFile%"') DO (
ECHO.%%A> "%TempFile%"
ECHO.%TempFile%>>"%OutFile%"
REM CALL :RemovePrecedingWordA "%%A"
)
FOR /F "tokens=*" %%A IN ('FINDSTR " Also this" "%InFile%"') DO (
ECHO.%%A> "%TempFile%"
ECHO.%TempFile%>>"%OutFile%"
REM CALL :RemovePrecedingWordA "%%A"
)

但是它不起作用。请帮忙。

最佳答案

你可以使用/g: 选项来查找 str,基本上是这样

findstr /g:pattern.txt %InFile% > %OutFile%

pattern.txt 在哪里(在你的例子中)

I want
Also this

这假设您可以为要复制的所有行编写 findstr 正则表达式。

如果您对多个文件(通配符)使用 findstr,您将获得前缀的文件名。要解决这个问题,请使用
删除输出.txt
对于 (*.txt) 中的 %F;执行 findstr/g:pattern.txt %F >> out.txt
请注意,您应该将源文件放在与模式和输出文件不同的目录中(或使用不同的扩展名),否则 *.txt 通配符也会选择这些文件。

关于windows - 批处理文件将特定行从一个文本文件复制到另一个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280827/

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