ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. エンジニア
  4. PowerShellのGet-ChildItemとは?コマンドレットをたくさん使用しよう!

PowerShellのGet-ChildItemとは?コマンドレットをたくさん使用しよう!

  • エンジニア
  • テクノロジー
公開日時:   更新日時:
PowerShellのGet-ChildItemとは?コマンドレットをたくさん使用しよう!
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    PowerShellを使ってフォルダ内の項目を一覧表示してみましょう

    PowerShellはMicrosoftが開発したシェルスクリプト言語です。CUIの一つで、コマンドレットと呼ばれる命令文を使います。

    C#などの上級言語を使うまででもないけれど、小規模でもシステム管理などを自動的に行えるような簡易的なシステムを開発したい場合に向いている言語と言えます。

    今回はフォルダ内の項目を一覧で表示するコマンドレットについて説明します。この記事は、これからPowerShellを使って開発を始めたい方へ向けた記事ですが、コマンドレットについて簡易的に説明している項目もあります。そのため、PowerShellとはどういうものかという点についても知ることができるでしょう。
     

     

    Get-ChildItemについて

    Get-ChildItemコマンドレットを使用すると、パスで指定したフォルダ内の情報が取得できます。項目の名前だけでなくファイルサイズや項目の属性、最終書き込み時間についても取得可能です。

    PowerShellにはいくつかのパラメータが用意されていて、パラメータを使うことで更に条件を指定した取得が可能です。また、パラメータを複数組み合わせることもできますのでより複雑な条件指定に対応しています。

    Get-ChildItemコマンドレットを使って表示される一覧の内容は?

    Get-ChildItemコマンドレットを使うとフォルダの内容が表形式で取得できます。ここでは、PowerShellのコマンドレットの説明の前に、一覧の項目について見ていきましょう。

    一覧には以下の項目が表示されます。

    項目名 内容
    Mode モード(属性)
    LastWriteTime 最終書き込み時間
    Length ファイルサイズ
    Name ファイル名、ディレクトリ名

    モードに関しては以下の内容を示します。そのファイルやフォルダの属性によって表示内容が異なります。また、ファイルの場合は属性の指定がなければ「—–」と表示されます。

    モードに表示される英字は、内容を英語表記した頭文字の為、イメージしながら覚えましょう。

    モード名 英語表記 内容
    d Directory ディレクトリ
    a Archive アーカイブ
    r Only 読み取り専用
    h Hidden 非表示
    s System システム
    l Link リンク

    フォルダの情報を取得するには?

    ここからはGet-ChildItemコマンドレットとパラメータについて例をあげながら説明します。まずは、指定したフォルダ内の情報を単純に取得するコマンドレットについて見ていきましょう。

    Get-ChildItem -Path <フォルダパス>

    Pathパラメータおよびフォルダパスを指定せずに実行するとカレントフォルダの内容を一覧として表示します。

    以下のコマンドを実行するとCドライブのtestフォルダ配下の項目を一覧表示します。

    (例)Get-ChildItem -Path C:\test

    一覧のMode欄を見ると、フォルダの場合は「d」が表示されます。特に属性がないファイルの場合は「——」と表記されます。

    非表示の項目を表示するには?

    続いては、隠し(非表示)項目を含めた一覧の取得について説明します。

    Get-ChildItem -Path <フォルダパス> -Force

    以下のコマンドを実行するとCドライブのtestフォルダ配下の、隠し項目も含めて一覧表示します。

    (例)Get-ChildItem -Path C:\test -Force

    隠し項目の場合はMode欄に「h」が表示されます。

    ここで注意事項ですが、ファイルやフォルダにアクセス権が付与されていない場合はForceパラメータを使ってもその項目に関しては表示されません。

    指定フォルダ配下のサブフォルダも含めて表示するには?

    パスで指定したフォルダのサブフォルダも含めて取得する場合は以下のコマンドレットを使用します。

    Get-ChildItem -Path <フォルダパス> -Recurse

    次のコマンドを実行するとCドライブのtestフォルダ配下の項目をサブフォルダの内容も含めて取得します。

    (例)Get-ChildItem -Path C:\test -Recurse

    指定したファイル配下のサブフォルダを取得しますので、複数のフォルダがツリー状となっている場合は表示に時間がかかる可能性があります。そのため可能な限りフォルダパスを指定して絞り込みをした方が良いでしょう。

    項目の名前のみを表示するには?

    Nameパラメータを使うことで、項目の名前のみを表示します。最終書き込み時間やモード、ファイルサイズの表示が不要な場合に使えます。

    Get-ChildItem -Path <フォルダパス> -Name

    以下のコマンドを実行するとCドライブのtestフォルダ内の項目名のみを表示します。

    (例)Get-ChildItem -Path C:\test -Name

    ファイルやフォルダ名のみを羅列するので見やすく表示されます。

    ワイルドカードを使用して特定の名前の項目を取得するには?

    PowerShellではフォルダパス指定の際にワイルドカードを使用してパターンマッチングすることが可能です。

    以下のコマンドを実行するとCドライブのtestフォルダ内の中で拡張子が「.log」のファイルのみを表示します。

    (例)Get-ChildItem -Path C:\test\*.log

    他の例を挙げると、頭文字がAから始まる項目のみを取得したい場合は以下のようになります。
    (例)Get-ChildItem -Path C:\test\A*

    ワイルドカードにはパターンがありますので紹介します。いずれも半角で入力してください。このワイルドカードはPowerShellだけでなく他の言語やSQLでも使えますので覚えておくと便利です。

    入力値 内容
    * (アスタリスク) 任意の0文字以上の文字列
    ? (疑問符) 任意の1文字

    特定のファイル名を除外して取得するには?

    次に、指定したファイル名以外を表示する方法について説明します。

    Get-ChildItem -Path <フォルダパス> -Exclude <条件>

    例えば、Cドライブのtestフォルダに次の名前のファイルが存在するとします。
    A100.txt
    A100.log
    B200.txt
    B300.txt

    以下のコマンドを実行するとCドライブのtestフォルダの中で拡張子が「.log」となっているファイルを除外して、ファイル名のみ表示します。

    (例)Get-ChildItem -Path C:\test -Name -Exclude *.log

    すると実行結果は次のようになります。
    A100.txt
    B200.txt
    B300.txt

    拡張子が「.log」のA100.logが除外された形で一覧の取得ができました。

    パラメータを組み合わせて様々な方法で一覧を取得してみましょう

    ここまでいくつかのパラメータについて説明してきましたが、パラメータを複数指定して一覧を取得することもできます。

    以下のコマンドを実行するとCドライブのtestフォルダ配下の項目をサブフォルダの内容も含めて、隠し項目についても取得します。

    (例)Get-ChildItem -Path C:\test -Recurse -Force

    また、次のコマンドを実行するとCドライブのtestフォルダ内の中で拡張子が「.log」のファイルのみを、隠し項目についても取得します。

    (例)Get-ChildItem -Path C:\test\*.log -Force

    コマンドレットをたくさん入力して実行してみましょう

    PowerShellはWindowsコマンドとの互換性に優れています。今回説明したGet-ChildItemコマンドレットはWindowsコマンドでいうところの「dir」との互換性があります。

    PowerShellのコマンドレットに馴染めなくてもコマンドプロンプト上で使い慣れているWindowsコマンドと照らし合わせてみるとイメージしやすい場合があります。

    ご自身で使いたいコマンドレットとの互換性を調べたり、コマンドをたくさん入力してPowerShellを攻略していきましょう。
     

     

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    新着案件New Job