У меня есть файл .csv с количеством строк, но мне нужны только первые три строки, а остальные нет. Как я могу использовать командный файл для экспорта этих трех верхних строк моего файла .csv в другой файл .csv? Я видел несколько похожих вопросов с решениями, которые ссылались на текстовые файлы, но мои попытки изменить пакетный файл не были столь успешными. У кого-нибудь есть предложения?

1 ответ1

1

Используя этот пост из переполнения стека (названный автором 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .