バッチコマンドを使用して、.csvの最初の3行を別の.csvにエクスポートします


0

複数の行がある.csvファイルがありますが、最初の3行のみが必要で、残りは必要ありません。バッチファイルを使用して、.csvファイルの上位3行を別の.csvファイルにエクスポートするにはどうすればよいですか?テキストファイルを参照するソリューションで同様の質問がいくつかありましたが、バッチファイルを修正しようとしてもうまくいきませんでした。ここに誰か提案がありますか?

回答:


1

使い方このあなたが求めているだけで何やって修正することができる(著者によってhead.bat命名)、スタックオーバーフローからのポストを。

head.bat 3 foo.csv

これにより、上位n行が取得され、これらの3行のみを含むfoo.csvというファイルが作成されますbar.csv。ファイル名とカウントを入力するか、バッチファイルから単純に呼び出すことができます。これを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

感謝万円。これは、私が望んでいたとおりに機能しました。
batchnoober
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.