使用批处理命令将 .csv 的前三行导出到另一个 .csv 中

使用批处理命令将 .csv 的前三行导出到另一个 .csv 中

我有一个包含多行的 .csv 文件,但我只想要前三行,其余的都不想要。如何使用批处理文件将 .csv 文件的前三行导出到另一个 .csv 文件中?我看到了一些类似的问题,解决方案引用了文本文件,但我尝试修改批处理文件,但效果并不理想。有人有什么建议吗?

答案1

使用来自 Stack overflow 的帖子(作者将其命名为 head.bat),可以对其进行修改以执行您所要求的操作。

head.bat 3 foo.csv

这将从中取出前 n 行foo.csv并创建一个名为的文件bar.csv,该文件仅包含这 3 行。您可以输入文件名和计数,也可以直接从批处理文件中调用它。这可以与命令for和其他变量一起使用来处理多个文件并输出多个文件。

    @echo off

if [%1] == [] goto usage
if [%2] == [] goto usage

call :print_head %1 %2
goto :eof

REM
REM print_head
REM Prints the first non-blank %1 lines in the file %2.
REM
:print_head
setlocal EnableDelayedExpansion
set /a counter=0

for /f ^"usebackq^ eol^=^

^ delims^=^" %%a in (%2) do (
        if "!counter!"=="%1" goto :eof
        @echo>>bar.csv %%a
        set /a counter+=1
)

goto :eof

:usage
echo Usage: head.bat COUNT FILENAME

相关内容