【PowerShell】コマンドプロンプトのdirコマンドを実行する方法
Windows10から11にアップグレードされたことに伴い、エクスプローラーでShift+右クリックで表示されるメニューから選べるCUIが、コマンドプロンプトからPowerShellに変更されました。
これまでコマンドプロンプトを使用していた方は、PowerShellに変更になり、今まで使っていたコマンドが使えなくなってしまった、ということもあるかもしれません。
この記事では、コマンドプロンプトで使用できる代表的なコマンドのひとつであるdir
コマンドについて、PowerShellで同じことをする方法を解説いたします。
PowerShellの起動方法について
本題に入る前に、PowerShellの起動方法について説明します。
Windows11から、エクスプローラー上で右クリックをした時に表示されるメニューが変わりました。それに伴って、これまでShift+右クリックをしないと表示されなかったCUIの起動メニューが、右クリックだけで表示できるようになりました。
これまで通り、Shift+右クリックを押しても、同じようにPowerShellを起動することができます。「ターミナルで開く」と「PowerShell ウィンドウをここで開く」の2つがありますが、どちらを選択してもPowerShellが起動されます。
dirコマンドを実行する方法
ここから、dir
コマンドと同様のことをPowerShellで実行する方法を見ていきましょう。
実は、オプションをつけずにdir
コマンドを実行するだけなら、PowerShellでもできます。
実行コマンド:dir
本来、PowerShellでdir
と同様の処理を行うには、Get-ChildItem
というコマンドを使用するのですが、Get-ChildItem
コマンドにはエイリアスが設定されていて、その中にdir
が含まれています。そのため、dir
を実行することで、間接的にGet-ChildItem
コマンドが実行され、コマンドプロンプトのdir
と同様の結果が得られます。
以下は、Get-ChildItem
コマンドを実行した例です。
実行コマンド:Get-ChildItem
サブフォルダの中も合わせて表示する方法
コマンドプロンプトのdir
コマンドでは、/s
オプションをつけることで、サブフォルダの内容を再起的に表示することができます。
PowerShellでこれと同じことをするには、-s
オプションを使用します。
コマンド:dir -s
この-s
も、Get-ChildItem
コマンドの-Recurse
オプションのエイリアスです。ですので、dir -s
コマンドは以下のコマンドを実行しているのと同じです。
コマンド:Get-ChildItem -Recurse
dir -s
とGet-ChildItem -Recurse
を実行すると以下のような結果が得られます。
dir -s
を実行した結果
Get-ChildItem -Recurse
を実行した結果
ファイル名だけを表示する方法
dir
コマンドを実行すると、ファイル名以外にも更新日時や権限情報などが表示されます。ファイル名だけを表示したい場合には、コマンドプロンプトでは/b
オプションを使用していました。
コマンド:dir /b
PowerShellで同様のことを実行するためには、以下のコマンドを使用します。
コマンド:Get-ChildItem | ForEach-Object{ $_.Name }
上記コマンドを実行すると、以下のような結果が得られます。
/s
オプションとは異なり、/b
には対応するエイリアスが設定されたPowerShellのオプションはありません。そのため、dir
コマンドを使用してファイル名だけを出力することはできません。
上記のGet-ChildItem
コマンドでは、Get-ChildItem
の出力結果をパイプを使用して後続のコマンドに引き渡しています。ForEach-Object
を使用して、出力結果のひとつひとつに対してカッコ内の処理を実行し、対象のファイル名を出力しています。
おわりに
本記事では、コマンドプロンプトのdir
コマンドと同様の処理をPowerShellを使用して実行する方法を解説しました。
コマンドプロンプトで使用していたコマンドの中には、そのままPowerShellで実行できるものもあり、そういうものは比較的とっつきやすいかと思います。
しかし、/b
のように、PowerShellで簡単には置き換えられないものもあります。標準のターミナルがPowerShellに置き換えられたということは、将来的にはPowerShellが主流になるということかもしれません。少しずつでも、PowerShellに馴染んでいくのが良いと思います。