ディレクトリ内のすべてのファイルを数え、行数を返し、ファイルの日付と 2 行目の最初の列の文字列を変更する方法

ディレクトリ内のすべてのファイルを数え、行数を返し、ファイルの日付と 2 行目の最初の列の文字列を変更する方法

複数の csv ファイルを含むディレクトリがあります。Windows 10 のバッチ スクリプトを使用して、各ファイルの行数、各ファイルの変更日、およびヘッダー行の後の最初の列の文字列を返したいと思います。テキスト ファイルに出力するにはどうすればよいですか?

File 1: String 100 lines 1/12/2019
File 2: String 100 lines 1/10/2019
File 3: String 200 lines 1/12/2019

答え1

スクリプトを作成するつもりはありませんが、必要な方法を提供します。まず、質問を 2 つの部分に分けてみましょう。

1.- Dir 内の行数を取得する

for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do set /a count+=1

ヘッダーの後の最初の行を取得するには、ループブレークを使用してこれを実行します

for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do (
    set /a count+=1 && if count==2 (first_row=%%a && goto next)
)
:next

2.- 変更日

for /f "tokens=1,2 delims= " %%a in (
    'dir "FullDirPath" ^| find /i "File_name"'
) do set ArchDate=%%a

echo "%first_row%" "%archdate%" "%count%"これをまとめてスクリプトを作成するのはあなた次第です。上記のコードを使用してすべてのファイルをループし、各ループの最後にecho "%first_row%" "%archdate%" "%count%" > file.txt

このメソッドは でテストできますcmdが、ターミナルで変数を使用するには%%aを に置き換える必要があります%a。バッチ スクリプトでは が%%a正しい構文ですが、ターミナルでは が%a正しい構文です。

乾杯。

関連情報