批处理脚本从文本文件中显示n到m行并保存新的文本文件

时间:2017-10-16 15:17:55

标签: windows batch-file

我找到了代码(见下文),但我没有编码的能力。我想从文本文件中选择所需的部分(行)并保存在另一个文本文件中!谢谢你的帮助!

CODE:

@echo OFF
:: Get the number of lines in the file
set LINES=0
for /f "delims==" %%I in (data.txt) do (
set /a LINES=LINES+1
)

:: Print the last 10 lines
set /a LINES=LINES-10
more +%LINES% < data.txt

1 个答案:

答案 0 :(得分:0)

注意以下内容仅反映您的问题正文和代码内容,而忽略了您的问题标题文字。

这是一个脚本,它会执行你的问题代码所做的事情,除了它输出到文件。

输出文件将写入当前目录并命名为名称 - 最后 X.ext 其中名称 .ext 将与源文件的名称和扩展名相同, X 将是输出行数

您需要进行的唯一更改是第3行的源文件和第4行的最后输出行数。

@Echo Off

Set "SrcFile=data.txt"
Set "LastNum=10"

Rem If SrcFile doesn't exist or LastNum isn't at least 1 exit the script
If Not Exist "%SrcFile%" Exit/B
If 1%LastNum% Lss 11 Exit/B

Rem Calculate line number for first line of output
Set "#=-%LastNum%"
For /F "Delims=" %%A In ('Find /V /C ""^<"%SrcFile%"') Do Set/A #+=%%A

Rem Re-calculation for files with less lines than LastNum
If %#% Lss 0 Set/A "LastNum+=#, #=0"

Rem Create destination filename for output
For %%A In ("%SrcFile%") Do Set "$=%%~nA-Last%LastNum%%%~xA"

Rem Output to destination file
More +%#% "%SrcFile%">"%$%"

请注意,More会将 tab 更改为 space s

的序列