韜晦日記

韜晦日記

Rietveldよりもプログラミングメインになりつつある

Rietveld解析初心者による備忘録とつぶやき

ファイルの指定した行から他のファイルにコピーする。【batファイル】

指定した行から最終行まで他のファイルにコピーするためのバッチファイルを作りました。
私はこれを使って実験データを整形し解析に用います。

やりたいこと。

内容としては以下の通りです。
コピーしたいファイル : a.txt
コピー先のファイル : b.txt
a.txt内のテキストをある行から最終行までコピーしてb.txtに出力します。 今回はううう の3行目から最後まで出力してみます。

a.txtの中身

あああ
いいい
ううう
えええ
おおお
かかか
ききき

バッチファイルの中身

@echo off 
echo %1

type %1|more +2 >>%~p1%b.txt

実行結果b.txt

ううう
えええ
おおお
かかか
ききき

実行方法

  1. 適当なフォルダにバッチファイルを作成します。(どこでもいいはずです。)
  2. 作成したバッチファイルにコピーしたいファイル(a.txt)をドラック&ドロップします。

以上です。コピーしたいファイル(a.txt)があるフォルダの中にb.txtが生成されます。

わざわざコマンドを打たなくてもいい理由は、第一引数を受け取っているからです。 %1は第一引数を表しており、ドラック&ドロップされたファイルのパスが入力されます。
そして出力ファイルは%~p1%b.txtとなっていますが、%~p1%は第一引数で得たパスのフォルダを表しています。なので、コピーしたいファイルのフォルダの中にb.txtが生成されるわけです。

行の指定

行の指定にはtype %1|more +2 >>%~p1%b.txt+2の部分を指定したい行数に変更します。
ここで注意するのが行数のカウントは0からスタートしますので、0から数えて何行目かを指定してください。 案外簡単ですよね。

おまけ

テキストファイルの行数をカウントして出力したい場合は type %1|find /c /v "" >>%~p1%b.txt
とするといいでしょう。(実験データの整形に利用したため。)

おわり。