【PowerShell】ファイル名が連番の複数テキストファイルの中身を一度に表示させるコマンド「Get-Content」(for文を利用)

PowerShellアイコン

仕事などで大量に送られてきたテキストファイル(証跡など中身を確認しないといけないテキスト)を確認するようなこと稀にありますよね。

今回はそのテキストファイルの中身をPowerShellコマンドで一度に表示する方法をご紹介します。

後半ではテキストファイル内の特定の文字列のみを表示する方法も記載してますので、少しでも需要があればと思っています。


前提

テキストファイルのファイル名が「文字列+連番.txt」などになっていることが理想的です。

「文字列+連番+文字列.txt」のように文字列の間が連番となっていても可能です。

今回の例ではCドライブにtestディレクトリを作成しています。

「C:\test」で実行していますのでご自身の環境に合わせて書き換えてください。

ファイル名:file1.txt ~ file10.txt

テキストの中身には「file1」~「file10」と記載しています。

用意した「文字列+連番.txt」の画像

例:「文字列 + 連番.txt」の中身表示

10個連番のテキストファイルの中身を表示します。

※ファイル数が多い場合は1行目の黄色い箇所の数字を変更してください。

「for ($i = 1; $i -le 10; $i++){」

1.絶対パスで実行

for ($i = 1; $i -le 10; $i++){
    $filepath = "C:\test\"
    $filename = $filepath + "file" + $i + ".txt"

    Get-Content -Encoding UTF8 $filename
}
絶対パスで実行した画像

2.相対パスで実行(C:\test内で実行)

for ($i = 1; $i -le 10; $i++){
    $filename = ".\file" + $i + ".txt"

    Get-Content -Encoding UTF8 $filename
}
相対パスで実行した画像

例:「文字列 + 連番 + 文字列.txt」の中身表示

途中が連番となっているファイル名の場合

ファイル名:file1moji.txt ~ file10moji.txt

コマンドの変更箇所(3行目):"moji.txt"

1.絶対パスで実行

for ($i = 1; $i -le 10; $i++){
    $filepath = "C:\test\"
    $filename = $filepath + "file" + $i + "moji.txt"

    Get-Content -Encoding UTF8 $filename
}
「文字列 + 連番 + 文字列.txt」絶対パスで実行した画像

2.相対パスで実行(C:\test内で実行)

for ($i = 1; $i -le 10; $i++){
    $filename = ".\file" + $i + "moji.txt"

    Get-Content -Encoding UTF8 $filename
}
「文字列 + 連番 + 文字列.txt」相対パスで実行した画像

テキストファイル内の特定の文字列のみを表示する

例えばですが、一部のテキストファイルに確認したい文字列が含まれている場合や

すべてのテキストファイル内に「承認します」などの文字列が含まれている行ある場合などで活用できます。

file1.txt ~ file10.txtまである中のfile3とfile6だけに「これは特定の文字列です。」と記載しています。(2つ表示されれば成功です。)

コマンドの変更箇所(3行目):| Select-String "これは特定の文字列です。"

1.絶対パスで実行

for ($i = 1; $i -le 10; $i++){
    $filepath = "C:\test\"
    $filename = $filepath + "file" + $i + ".txt"

    Get-Content -Encoding UTF8 $filename | Select-String "これは特定の文字列です。"
}
テキストファイル内の特定の文字列のみを表示する絶対パスで実行した画像

2.相対パスで実行(C:\test内で実行)

for ($i = 1; $i -le 10; $i++){
    $filename = ".\file" + $i + ".txt"

    Get-Content -Encoding UTF8 $filename | Select-String "これは特定の文字列です。"
}
テキストファイル内の特定の文字列のみを表示する相対パスで実行した画像

まとめ

いかがでしたでしょうか。

テキストファイルが50個や100個とかある時に活用すると効率良く確認することが可能になります。

ご自身の環境に合わせてコマンドを編集して実行してみてください。

Read more

【資産運用】PayPay ポイント運用を約1年と数カ月続けた結果を公開

物価高の昨今ですが、皆さんは投資していますでしょうか。 投資といっても様々あり リスクが高くリターンが高い投資やリスクが低くリターンも低い投資があります。 銀行に自身のお金を預けていても、銀行側も預かっているお金で融資をしたりしているので資産運用しているとも言えます。 ですが銀行に預けていても金利が低くなかなかお金が増えません。 そこでリスクは低く、リターンもそこそこあるPayPay ポイント運用を約1年間続けた結果を公開します。 なぜリスクが低いか PayPayポイント運用とは、日常の買い物などで貯まるPayPayから付与されたポイントを利用して投資が可能となります。 そのため買い物の中で還元されたポイントのみが運用で上下するため元手となる資金は必要ないような運用となります。 いつでも引き出しが可能です。利用したくなることがあればすぐにポイントを引き出せます。 参考 【FP監修】PayPayポイント運用をやってみよう!初心者が意識したい5つのコツも紹介 - PayPay本記事では、PayPayポイント運用とは何か、初心者が意識したい5つのコツなどを紹

By 管理者

「AdGuard Home」で広告ブロックのフィルターを設定する方法(LINEの広告のブロック方法も紹介)

前回の記事でUGREEN NASのDocker上でAdGuard Homeを構築するまでを紹介しました。 まだ見ていない方はこちら↓ UGREEN NASのDockerで「AdGuard Home」を稼働させて広告ブロックする方法本記事を見に来た方にAdGuard Homeの説明は不要かと思いますので省きます。 とにかくネットワークレベルで広告をブロックしたいと思っていて、自宅にNASサーバーを24時間稼働させている方が見に来られているかと思います。 Raspberry Pi(ラズパイ)でも同じことが実現可能です。 自宅のその辺に転がっているラズパイでも試してみてください。 本記事ではUGREEN NAS(DXP2800)のDockerで構築して動作させています。 利用するDockerイメージ https://hub.docker.com/r/adguard/adguardhome Dockerイメージダウンロード UGREEN NASのDockerの「イメージ」>「イメージリポジトリ」の検索欄からadguardhomeと検索して、 上記のDockerイメージと同じ物(検索して一番

By 管理者

UGREEN NASのDockerで「AdGuard Home」を稼働させて広告ブロックする方法

本記事を見に来た方にAdGuard Homeの説明は不要かと思いますので省きます。 とにかくネットワークレベルで広告をブロックしたいと思っていて、自宅にNASサーバーを24時間稼働させている方が見に来られているかと思います。 Raspberry Pi(ラズパイ)でも同じことが実現可能です。 自宅のその辺に転がっているラズパイでも試してみてください。 本記事ではUGREEN NAS(DXP2800)のDockerで構築して動作させています。 利用するDockerイメージ https://hub.docker.com/r/adguard/adguardhome Dockerイメージダウンロード UGREEN NASのDockerの「イメージ」>「イメージリポジトリ」の検索欄からadguardhomeと検索して、 上記のDockerイメージと同じ物(検索して一番上にあるもの)をダウンロードします。 コンテナ作成 次に「コンテナ」>「作成」からイメージを選択で先程ダウンロードしたイメージを選択してください。 コンテナの編集 コンテナ名は自由に分か

By 管理者

【PowerShell】ローカルアカウントのコマンドのみでドメインアカウントのコマンドプロンプトと管理者権限付きのPowerShellを開く方法

Windowsのローカルアカウントからドメインアカウントでコマンド操作をしたい場合は、 基本的にはローカルアカウントを一度サインアウトをしてから ログイン画面で「他のユーザー」からドメインアカウントへ切り替えが必要となります。 そのログイン切り替えが面倒くさいため、 ローカルアカウントからサインアウトせずにコマンドのみでドメインアカウントのコマンド操作できるPowerShell実行方法を掲載します。 ドメインアカウントに管理者権限を付与 ローカルアカウトでコマンドプロンプトを管理者権限で開きます。(PowerShellも可) 以下コマンドでドメインアカウントを管理者グループに追加しておきます。 ※「アカウントID」箇所を自身の使うアカウントに書き換えしてください。 net localgroup administrators アカウントID /add ドメインアカウントのコマンドプロンプトを開く ※「ドメイン名」と「アカウントID」箇所を自身の使うドメインとアカウントに書き換えしてください。 パスワードが求められたらドメインアカウントのパスワードを入

By 管理者