複数の 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
正しい構文です。
乾杯。