入門講義3:ファイル比較をして、ファイルの内容を追記する

BASH,bat,バッチ

ファイル比較する際、名前のものを使ってました。いちいちファイル名を変えなくては出来ないので、使いにくいと思います。

今回の入門講義3では、そのような手間を減らすバッチファイルを作っていきます。

この記事が参考になる方

  • ファイルの内容をコマンドプロンプトで見て、比較して、編集したい方
  • バッチファイルの技術を向上させたい方

ファイルの内容を確認する方法

コマンドスクリプトにテキストファイル

下記のテキストファイルを表示させます


私は太郎です。

毎月、暮らしに役立つ情報を発信しているものです。

I am taro.

I am from kyoto, but I live in niigata.

まず単純にtypeコマンドやmoreコマンドで表示させます。

type ex.txt

more ex.txt

コマンドスクリプトの表示は下記のとおりになりました。

このようにテキストファイルの内容を見るには、typaやmoreコマンドでできます。テキストファイルだけではなく、「.bat」の拡張子のバッチファイルも内容を確認することができます。

ファイルを作成する方法

テキストファイルを作成する方法として、「>」の方法があります。例えば、例1.txtの名前のファイルを作成する時は、コマンドスクリプトにnul > 例1.txt とすれば、ファイルができます。

下記の空になってるフォルダにテキストファイルを作成します。

コマンドはこちら。nulは空という意味、>は作成。

type nul >ex.txt

コマンドスクリプトで実行し、フォルダを見ますと、下記のようにテキストファイルが作成されました。

nulは空という意味があり、pauseコマンドでコメントを表示しない時にも使用します。

他にもechoコマンドを使ってもできます。

どんなコマンドでも>を使えば、ファイルを作成することができますので、色々ためしてみるといいでしょう。

ファイルの内容を比較する方法

ファイル内容を比較するには、compコマンドを使用します。

Compコマンドは2つのファイルを比較するコマンドです。2つのファイルの内容を比べて、異なる内容について表示します。

comp [オプション] [フォイル名1] [ファイル名2]

オプション

/d 相違点を10 進数で表示。
/a 相違点を ASCII 文字で表示。
/l  相違のある行の行番号を表示。
/n=行数  各ファイルの先頭から指定された行数だけを比較。
/c         ファイルを比較するときに ASCII 文字の大文字と小文字を区別しない。
/off[LINE] オフライン属性が設定されたファイルをスキップしない。
/m        その他のファイルを比較するメッセージを表示しない。

fcコマンドはcompコマンドと似ています。fcコマンドの方がざっくりとした比較になります。違いについては下記を参照してください。

例えば、下記2種類のテキストファイルを比較します。

comp /a /l 1.txt 2.txt

「/a」オプションは私たちが読める言葉に変換するコードです。/lは行数を表示するコードです。

コマンドスクリプト結果はこちらです。

下記2つの項目の赤文字部分が抽出されて、表示されていることがわかります。

私は太郎です

私は花子です

「LINE1」とは1行目という意味です。

次に2行以上ある文の比較をします。

この2つの文章を比較します。コマンドプロンプトの結果はこちら。

それぞれ項目で比較されています。下記のテキストファイルの赤文字部分が違うことがわかります。

3.txt

I am taro

my father itiro

4.txt

4.txt

I am hana

my mother youko

その他のファイルを比較するというメッセージを非表示にする

Compコマンドの処理の最後の行で「ほかのファイルを比較しますか(Y/N)?」の表示を非表示にするにはオプション/mを使います。

comp /m /a /l 1.txt 2.txt

コマンドプロンプトの結果はこちら。最後の行にメッセージがないことが確認できます。

ファイルの内容を追記する方法

追記するには>>を使用します

先ほど>はファイルを作成することができました。この二つの機能を使って、下記のコードを実行します。

type nul >例1.txt
type 例1.txt
echo 追記するよ! >> 例1.txt
type 例1.txt

コマンドプロンプトの結果はこちら。

ここでのポイントは2つ。

・始めにtypeコマンドで表示した内容は何も表示されません。(下記赤枠)

・2つ目のtypeコマンドで表示した内容は、「>>」によって追記された内容が表示されています。(下記青枠)

このように「>>」を使用すると内容を追記することができます。また、どのコマンドでも使用できますので、色々試してみると面白いです。

まとめ

以上でファイルの内容を表示したり、追記したりする方法を解説しました。

ファイルを内容を表示させるには、typeコマンドやmoreコマンドを使用すればできます。

追記するには「>>」、ファイルの内容を上書きするには「>」を使用します。

入門講義9では、ファイルの内容を部分的に削除したり、文字を変換したりする方法を解説してますので、合わせて参考にしてください。

コメント

タイトルとURLをコピーしました