まず、私のコーディング能力が乏しいことにお詫び申し上げますが、私は数時間かけてフォーラムを読んで亀裂をつけたので、複数のテキストファイルから特定の行のデータを抽出して1つのCSVファイルに変換する
ファイル名を3行目、5行目、7行目の3つのテキストファイルから1つのCSVにポップします。
filename1, linedata3, linedata5, linedata7
filename2, linedata3, linedata5, linedata7
filename3, linedata3, linedata5, linedata7
Simples、eh?そうではありません。私はあなたのコーディング「スキルズ」に欠けており、あなたの助けを借りて行うことができます。ここで私がこれまで持っているものです。
まずバッチファイル(のgo.bat):
@echo off
for /f "skip=2 delims=" %%i in (%1) do >>lines.txt echo %~n1 %%i & goto :EOF
その後、手動コマンドラインエントリ:
go.bat file1.txt
go.bat file2.txt
go.bat file3.txt
だから、あなたが見ることができるように、私がしています1行のテキストに対してこれを行いますが、3行目と5行目を出力の最後に追加する方法はわかりません。また、私が本当に好きなのは適切なコマンドラインのエントリなので、ディレクトリ内のすべてのテキストファイルに対してこれを行うことができます。私は次のことを試しましたが、何かが欠けているようです:
for %i in (*.*) do go.bat "%i"
ボディーヘルプ?
ありがとうございました! James
+1ですが、 'FOR/L'ループも同様に機能するのだろうかと思います。 '<%1(FOR/L %% L IN(1,1,7)DO SET/P行%% L =)'のようなものです。基本的にはあなたと同じアイデアですが、似たような行を繰り返すのではなく、ループになるだけです。どう思いますか? –
@Andriyあなたのアイデア(いくつかの行変数でファイルのいくつかの行を読むためにループを使うこと)は、 'set line!i!= %% l'行のもう一つの答え(私の答え)で既に使われていました。 – Aacini
はい、あなたは 'for/L'ループを使用することもできますが、私の意見ではAaciniの – jeb