Windowsでテキストデータの文字数や行数をカウントする方法

Windowsでテキストデータの文字数や行数をカウントする方法

Windows環境で資料作成を行っていると、行数や文字数が指定された資料を作成しなければならないときや、作成した資料の行数や文字数を確認したいときがあります。

そのようなときに役立つテクニックとして、ここではWindowsでテキストデータの文字数や行数をカウントする方法を紹介します。

Microsoft Word

文章作成ツールの定番である「Microsoft Word」には、作成している文書内の文字数や行数をカウントする機能が搭載されています。

詳しい使い方については、以下の記事をご覧ください。

Word(ワード)で文書全体の文字数や行数を確認する方法
Microsft Word(ワード)で、現在開いている文書の文字数や行数を確認する方法を紹介します。

また、オープンソースの統合オフィスソフト「Libre Office」の文章作成ツール「Writer」でも、文字数をカウントすることができます。

Windowsでテキストデータの文字数や行数をカウントする方法

サードパーティーのテキストエディター

サードパーティーのテキストエディターアプリの多くは、テキストファイル内の文字数をカウントする機能が搭載されています。

たとえば、テキストエディターとして人気のあるMeryでは、テキストファイル内の文字を選択することで、選択した文字列の文字数や行数をステータスバーで確認することができます。(なお、Meryでは改行も1文字としてカウントされます。)

Windowsでテキストデータの文字数や行数をカウントする方法

メモ帳(Windows11)

Windowsには古くからテキストエディターとして「メモ帳」が標準搭載されていますが、Windows 10までのメモ帳では、文字数をカウントすることはできませんでした。

ですが、Windows 11に搭載されている新しいメモ帳では、文字数や行数をカウントできるようになっています。(なお、Windows 11のメモ帳では改行も1文字としてカウントされます。)

Windowsでテキストデータの文字数や行数をカウントする方法

コマンド

Windowsに標準搭載されているコマンドインターフェースPowerShellでは、Measure-Objectコマンドレットを使うことで、テキストデータの文字数や行数をカウントすることができます。

テキストファイルの文字数や行数をカウント

テキストファイルの文字数や行数をカウントするときは、以下のようにコマンドを実行します。(なお、空白行はカウントされないようです。)

PS> Get-Content -Encoding utf8 E:\sample.txt | Measure-Object -Character -line

Lines Words Characters Property
----- ----- ---------- --------
  145            11603

上のコマンドを毎回入力するのが面倒なら、以下の内容を記述したバッチファイルを用意しておけば、文字数や行数をカウントしたいテキストファイルをバッチファイルにドラッグ&ドロップするだけで行数や文字数をカウントできます。

なお、Get-Contentコマンドレットの「-Encoding」オプションでは、読み込むテキストファイルに応じた文字コードを指定してください。(ANSIなら「Default」、UTF8なら「UTF8」と指定します。)

@echo off
for %%A in (%*) do (
  powershell -command "Get-Content -Encoding UTF8 %%A | Measure-Object -Character -line"
)
pause

クリップボードテキストデータから文字数や行数をカウント

クリップボードにコピーしたテキストデータから、文字数や行数をカウントするときは、以下のようにコマンドを実行します。

PS> Get-Clipboard | Measure-Object -Character -Line

Lines Words Characters Property
----- ----- ---------- --------
  145            11603

上のコマンドを毎回入力するのが面倒なら、以下の内容を記述したバッチファイルを用意しておけば、カウントしたいテキストデータをクリップボードにコピーしてからバッチファイルを実行するだけで行数や文字数をカウントできます。

@echo off
powershell -command "Get-Clipboard | Measure-Object -Character -Line"
pause