Batch file 如何使用批处理文件将文本文件的第一行写入新文本文件?

Batch file 如何使用批处理文件将文本文件的第一行写入新文本文件?,batch-file,line,Batch File,Line,好的,我在一个文本文件中有几行。我想获取第一行并将其保存在另一个文件中。例如,这是文本文件: put returns between paragraphs for linebreak add 2 spaces at end for linebreak add 2 spaces at end2 for linebreak add 2 spaces at end3 我希望将段落之间的返回值保存到另一个文件中 我曾经 for /f "tokens=" %%A in ('findstr /r "^[0

好的,我在一个文本文件中有几行。我想获取第一行并将其保存在另一个文件中。例如,这是文本文件:

put returns between paragraphs
for linebreak add 2 spaces at end
for linebreak add 2 spaces at end2
for linebreak add 2 spaces at end3
我希望
将段落之间的返回值
保存到另一个文件中

我曾经

for /f "tokens=" %%A in ('findstr /r "^[0-9][0-9]*$" <"C:\Users\Sherlock\Desktop\AbcImport\123.txt"') do echo 123>>1234.txt
pause

for/f“tokens=“%%A in('findstr/r“^[0-9][0-9]*$”以下是将文本文件的第一个非空行写入另一个文本文件的批处理代码

@echo off
for /F "usebackq delims=" %%I in ("InputTextFile.txt") do (
    echo %%I>"OutputTextFile.txt"
    goto ContinueAfterLoop
)
:ContinueAfterLoop
InputTextFile.txt
是当前目录中包含要复制的第一行的文件

OutputTextFile.txt
是在当前目录中创建的文件,输入文件的第一行复制到此输出文件中

命令GOTO用于在处理第一行后退出循环,并继续循环下的批处理文件

要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面

  • echo/?
  • 获取/?
  • goto/?

另请阅读有关Microsoft的文章。

以下是将文本文件的第一个非空行写入另一个文本文件的批处理代码

@echo off
for /F "usebackq delims=" %%I in ("InputTextFile.txt") do (
    echo %%I>"OutputTextFile.txt"
    goto ContinueAfterLoop
)
:ContinueAfterLoop
InputTextFile.txt
是当前目录中包含要复制的第一行的文件

OutputTextFile.txt
是在当前目录中创建的文件,输入文件的第一行复制到此输出文件中

命令GOTO用于在处理第一行后退出循环,并继续循环下的批处理文件

要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面

  • echo/?
  • 获取/?
  • goto/?

另请阅读有关Microsoft的文章。

您可以使用以下命令:

SetLocal EnableDelayedExpansion
for /f "tokens=* delims=;" %%m in ("C:\Users\Sherlock\Desktop\AbcImport\123.txt") do (
    set /p FirstLine=<%%m
    echo !FirstLine!>>1234.txt
)
SetLocal EnableDelayedExpansion
对于/f“tokens=*delims=;”%%m in(“C:\Users\Sherlock\Desktop\AbcImport\123.txt”)do(
set/p FirstLine=>1234.txt
)
对于多个文件:

SetLocal EnableDelayedExpansion
for %%a in ("*") do (
    for /f "tokens=* delims=;" %%m in ("%%a") do (
        set /p FirstLine=<%%m
        echo !FirstLine!>>1234.txt
    )
)
SetLocal EnableDelayedExpansion
对于(“*”)中的%%a,请执行以下操作(
对于/f“tokens=*delims=;”%%m in(“%%a”)do(
set/p FirstLine=>1234.txt
)
)

您可以使用以下命令:

SetLocal EnableDelayedExpansion
for /f "tokens=* delims=;" %%m in ("C:\Users\Sherlock\Desktop\AbcImport\123.txt") do (
    set /p FirstLine=<%%m
    echo !FirstLine!>>1234.txt
)
SetLocal EnableDelayedExpansion
对于/f“tokens=*delims=;”%%m in(“C:\Users\Sherlock\Desktop\AbcImport\123.txt”)do(
set/p FirstLine=>1234.txt
)
对于多个文件:

SetLocal EnableDelayedExpansion
for %%a in ("*") do (
    for /f "tokens=* delims=;" %%m in ("%%a") do (
        set /p FirstLine=<%%m
        echo !FirstLine!>>1234.txt
    )
)
SetLocal EnableDelayedExpansion
对于(“*”)中的%%a,请执行以下操作(
对于/f“tokens=*delims=;”%%m in(“%%a”)do(
set/p FirstLine=>1234.txt
)
)

选项1-设置/p:这是最简单、最快的纯批处理解决方案,前提是行不超过1021字节,并且不以必须保留的控制字符结尾。文件大小无关紧要-它总是非常快地读取和写入第一行

@echo off
setlocal enableDelayedExpansion
set "ln="
<"input.txt" set /p "ln="
>"output.txt" (echo(!ln!)
如果第一行是空的,有一种方法可以使用纯批处理来保存它,但我不想麻烦。我会继续

选项3-JREPL.BAT或其他一些非批处理解决方案:批处理在处理文本文件方面非常差。您最好使用其他脚本语言,如VBScript、JScript或Powershell。或任何unix实用程序的Windows端口

我会使用-一个混合的JScrpit/批处理正则表达式文本处理实用程序,从XP开始在任何Windows机器上运行。对于这样一个简单的任务来说,这是一种过火的方法,但它是一个非常方便、强大和高效的工具,可以放在你的武器库中。一旦你拥有了它,它就可以用于许多文本处理任务。全文在脚本中嵌入了缩进

jrepl "^.*" "$&" /jendln "quit=true" /f "input.txt" /o "output.txt"

如果将命令放入批处理脚本中,请使用
调用JREPL

选项1-设置/p:这是最简单、最快的纯批处理解决方案,前提是行不超过1021字节,并且不以必须保留的控制字符结尾。文件大小无关紧要-它将始终读取我会很快写出第一行

@echo off
setlocal enableDelayedExpansion
set "ln="
<"input.txt" set /p "ln="
>"output.txt" (echo(!ln!)
rem Get the first line of a text file:
set /P "line=" < "C:\Users\Sherlock\Desktop\AbcImport\123.txt"
rem Write it into a new text file:
echo %line%> 1234.txt
如果第一行是空的,有一种方法可以使用纯批处理来保存它,但我不想麻烦。我会继续

选项3-JREPL.BAT或其他一些非批处理解决方案:批处理在处理文本文件方面非常差。您最好使用其他脚本语言,如VBScript、JScript或Powershell。或任何unix实用程序的Windows端口

我会使用-一个混合的JScrpit/批处理正则表达式文本处理实用程序,从XP开始在任何Windows机器上运行。对于这样一个简单的任务来说,这是一种过火的方法,但它是一个非常方便、强大和高效的工具,可以放在你的武器库中。一旦你拥有了它,它就可以用于许多文本处理任务。全文在脚本中嵌入了缩进

jrepl "^.*" "$&" /jendln "quit=true" /f "input.txt" /o "output.txt"
如果将命令放入批处理脚本中,请使用
调用JREPL

rem获取文本文件的第一行:
rem Get the first line of a text file:
set /P "line=" < "C:\Users\Sherlock\Desktop\AbcImport\123.txt"
rem Write it into a new text file:
echo %line%> 1234.txt
set/P“line=“<”C:\Users\Sherlock\Desktop\AbcImport\123.txt” rem将其写入新的文本文件: echo%line%>1234.txt
rem获取文本文件的第一行:
set/P“line=“<”C:\Users\Sherlock\Desktop\AbcImport\123.txt”
rem将其写入新的文本文件:
echo%line%>1234.txt

如果第一行以;开头,或如果第一行为空(假设OP希望将空行作为输出),则此操作将失败;如果第一行以;开头,或如果第一行为空(假设OP希望将空行作为输出),则此操作将失败在使用SET/P读取之前,应清除该行,如果该行包含po,则需要延迟扩展