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%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
-
インセンティブ制度
ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
-
社会保険・福利厚生
社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
-
東証プライム上場企業グループ
ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
オンライン面接も随時受付中。ぜひお気軽にご応募ください。


新着案件New Job
-
【高額年収】/【CCNA取得者歓迎】/ネットワークの構築/BIG-IP/東京都千代田区/【WEB面談可】/在宅ワーク/20代~30代の方活躍中
年収540万~540万円東京都千代田区(神保町駅) -
東京都中央区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収600万~600万円東京都中央区(小伝馬町駅) -
【高額年収】/インフラ構築支援/東京都港区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収960万~960万円東京都港区(新橋駅) -
ガバナンス推進、セキュリティ基盤支援/東京都港区/【WEB面談可】/在宅ワーク/20代~40代の方活躍中
年収780万~780万円東京都港区(新橋駅) -
カー用品販売会社の情報システム運用/東京都千代田区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/テレワーク
年収576万~576万円東京都千代田区(水道橋駅) -
ネットワーク構築、検証/東京都渋谷区/【WEB面談可】/テレワーク/20代~40代の方活躍中
年収540万~540万円東京都渋谷区(渋谷駅)