Windowsでディレクトリを変更することは、ファイル管理の基本的な部分ですが、訪れた各ディレクトリのフルパスを書くことに満足しますか?幸いなことに、PowerShellのディレクトリ変更コマンドを使用することで、あなたの生活を簡単にすることができます。
このチュートリアルでは、PowerShellで利用可能なディレクトリ変更コマンドを調べ、ファイルシステムを簡単にナビゲートするのに役立ちます。
続けて読んで、PowerShellを使ったファイルシステムの基本をマスターしましょう!
前提条件
このチュートリアルは実践的なデモンストレーションです。従って、PowerShellがインストールされたWindowsシステムが必要です。このチュートリアルではWindows 10とPowerShell v7を使用しています。
別のドライブに切り替える
ハードディスクやUSBドライブなどの各ストレージデバイスは、ドライブレター(例:C:、D:、E:、…Z:)が割り当てられます。PowerShellウィンドウを開くと、プロンプトはデフォルトで現在のドライブ上のユーザープロファイルディレクトリになります。
現在のドライブとは異なるドライブに保存されているファイルやフォルダに頻繁にアクセスする必要がある場合、別のドライブに切り替える必要があります。
どのようにして別のドライブに切り替えるかを確認するには、次の手順を実行してください。
1. PowerShellを開き、プロンプトがC:\Users\admin.と表示されているか確認してください。もし表示されていれば、現在はC:ドライブのadminユーザーのプロファイルディレクトリ内にいます。以下に示すように。

2. 次に、別のPowerShellセッションを管理者として開いてください。
以下のプロンプトは、通常のユーザーとしてPowerShellを起動する場合とは異なるデフォルトディレクトリから開始されます。具体的には、現在のドライブ(C:)内のWindowsディレクトリ内のSystem32ディレクトリから開始されます。
このデフォルトの動作により、非管理者ユーザーが誤って重要なシステムファイルを変更したり、機密ツールを実行したりするのを防ぎます。

3. 現在のドライブをD:
(または利用可能なドライブのいずれか)に変更するには、以下のコマンドを実行してください。この構文は、PowerShellで異なるドライブ間を素早く移動する方法です。
この方法でPowerShellでドライブを切り替えると、プロンプトが新しいドライブのルートディレクトリに変更されます。以下の出力のように。
表示されるように、PowerShellのデフォルトディレクトリに関係なく、常に別のドライブに切り替えることができます。

4. 今度は、以下のコマンドを実行してD:\Kitty
ディレクトリ(または他のサブディレクトリ)に切り替えてみてください。
以下のエラーが発生しましたか?このエラーは、この方法では一度にサブディレクトリ(例:D:\Kitty)に切り替えることができないため表示されます。
サブディレクトリに切り替える方法については、以下のセクションに移動してください。

cd
コマンドを使用してファイルシステムをナビゲートする
複数のサブディレクトリをナビゲートすることは、PowerShellでよく行われるタスクです。しかし、異なるサブディレクトリに素早く移動する方法はありますか? はい!現在のディレクトリに関係なく、別のサブディレクトリに素早く切り替えることができる「cd」コマンド(ディレクトリの変更)があります。
昔は、コマンドプロンプトでドライブとディレクトリ間を移動するために「cd」コマンドが使用されていました。Microsoftは「cd」コマンドを後方互換性があるようにしましたので、PowerShellでもディレクトリ間を移動することができます。
以下を読んで、cd
コマンドを使用してファイルシステムをナビゲートする方法を確認してください。
異なるドライブのディレクトリに移動する
別のドライブ内のサブディレクトリに移動することは、面倒な作業のように思えるかもしれません。しかし、心配する必要はありません。 cd
コマンドを使用すると、別のドライブに素早くジャンプしながら、そのディレクトリの1つに移動することができます。
以下のコマンドを実行して、D:*
ドライブ内のKitty
という名前のサブディレクトリに移動します。

ディレクトリ階層で上に移動する方法
ファイルシステムの管理やプロジェクト作業時には、現在のディレクトリから1つまたは2つ上のレベルに移動する必要があることがよくあります。cdコマンドは、現在のディレクトリの親ディレクトリに効果的に切り替えるための「..」表記をサポートしています。
この機能により、親ディレクトリのフルパスを指定せずにファイルシステム内で1つ上のレベルに移動することができます。
1. 以下のcdコマンドを実行し、スペースと「..」表記を追加します。これにより、PowerShellはディレクトリ階層で1つ上に移動します。
cdコマンドの後のスペース文字は必須ではありませんが、スペースを追加することは可読性と他のコマンドとの一貫性のために一般的な慣行です。
以下の出力では、プロンプトがC:\Users\admin\DocumentsからC:\Users\adminディレクトリに1つ上がっていることがわかります。注意すべきは、C:\Users\adminディレクトリのフルパスを指定せずに移動したことです。

2. 1つ上のレベルに移動する代わりに、以下のコマンドを実行し、2つの「..」表記を使用し、各末尾にバックスラッシュ(\)を追加します。これにより、ディレクトリ階層で2つ上に移動することができます。
以下の出力では、C:\Users\admin\Documentsから直接C:\Usersディレクトリに移動したことがわかります。

3. 最後に、現在のドライブのルートディレクトリに移動するために以下のコマンドを実行します。
もしファイルシステムで迷子になった場合、このコマンドは非常に便利です。このコマンドを使用すると、迅速にルートディレクトリに移動できます。このコマンドを複数回実行する手間が省けます。

特定のサブディレクトリに移動する
ディレクトリ階層で一つ上に移動するように、特定のサブディレクトリに移動することも迅速な作業です。前述のような注釈を付けることができませんので、(..
や..\
のような)以前のものと同様の注釈を追加することはできません。サブディレクトリの名前を指定する必要があります。
以下のコマンドを実行して、現在のディレクトリ(.
)内のサブディレクトリ(\admin
)の一つに移動します。
以下に注意してください。前述の通り、C:\Users\adminディレクトリの完全なパスを指定する必要がなかったため、時間と労力が節約されました。

PowerShell Cmdletsを使用したファイルシステムのナビゲーション
cd
コマンドは確かにPowerShellでも動作しますが、MicrosoftはSet-Location
などの多くのcmdletを導入しており、これらを使用してファイルシステムをナビゲートできます。
これらのcmdletはcd
コマンドよりも堅牢な機能を提供し、ドライブ間を移動したり、スタックされた場所をナビゲートしたり、場所の履歴をサイクルさせたりするために使用できます。
PowerShell cmdletがファイルシステムをナビゲートする際の強力な機能をご覧ください。
異なるドライブから場所を設定する
cd
コマンドと同様に、Set-Location
コマンドレットを使用すると、ディレクトリから別のディレクトリに移動し、そのディレクトリの直下に移動することができます。ただし、PowerShellのコマンドレットを使用するため、-Path
パラメータを追加して目的の場所のパスを設定する必要があります。
Set-Location
コマンドレットは、現在の作業ディレクトリを指定した場所に設定します。指定した場所は、次のいずれかであることができます:
- A directory, or subdirectory on the local file system.
- PowerShellのプロバイダでサポートされる他の場所。
- またはレジストリの場所。
Set-Location
コマンドレットがファイルシステムをナビゲートする方法を確認するには、次のコマンドを実行してください:
-Path
パラメータで指定されたD:
ドライブのKitty
ディレクトリに移動します。

Set-Location
コマンドレットをフルで入力するのが少し面倒な場合は、エイリアスの1つ、chdir
やsl
などを使用してファイルシステムをナビゲートすることもできます。エイリアスは、よく使用するコマンドにより便利なアクセス方法を提供します。
次に、特定のレジストリの場所に作業ディレクトリを設定するために、次のコマンドを実行してください。この場合、HKLM:\
パス(省略形)はWindowsレジストリのHKEY_LOCAL_MACHINEハイブを指します。
このコマンドは、レジストリのHKEY_LOCAL_MACHINEハイブのルートに作業場所を設定します。レジストリに移動することで、他のPowerShellコマンドを使用してサブキーと値にアクセスおよび変更できます。

スタックされた場所の切り替え(プッシュおよびポップ)
スタックされた場所に素早くアクセスすることは便利です。しかし、可能ですか? はい! Push-Location
およびPop-Location
コマンドレットを使用して、名前付きスタックから最後に追加されたものから順に場所をプッシュおよびポップできます。
スタックされた場所を移動するには、次の手順に従います:
1. 下記のPush-Location
コマンドを実行して、現在の場所をPaths
というスタックにプッシュし、C:\Program Files\PowerShell\
ディレクトリを現在のディレクトリに設定します。

2. 次に、以下のコマンドを実行して、現在の場所(C:\Program Files\PowerShell\)を同じPaths
スタックの一番上にプッシュします。

3. 各コマンドを実行して、Paths
をデフォルトのスタックに設定し、スタックされた場所を表示(Get-Location
)します。
以下は、現在2つの場所が重ねられていることが分かる、最後に追加した場所が一番上にある状態です。

4. 今、以下のPop-Location
コマンドを2回実行して、デフォルトのスタックからトップの場所をポップし、現在はパススタックです。

スタックから場所をポップすると、その場所がスタックから削除されます。以下のエラーは、デフォルトのスタックからすべてのスタックされた場所をポップしたことを示しています。

変数に格納されたディレクトリへの移動
ファイルシステム内のディレクトリを移動するさまざまな方法を試してきました。しかし、特定の場所を頻繁に移動する必要がある場合はどうでしょうか?完全なパスを複数回入力したり、場所の履歴を辿るのは面倒です。代わりにディレクトリの完全なパスを変数に格納することはいかがでしょうか?
宣言された変数を使用すると、頭の中でパスを指定せずに目標のディレクトリに移動できます。
1. 以下のコマンドを実行して、C:\Program Files\PowerShell\
ディレクトリを$psh
変数に格納し、その場所($psh
)を現在のディレクトリとして設定します。
以下の出力は、変数を使用したディレクトリ変更の成功を確認しています。現在のディレクトリに関係なく、C:\Program Files\PowerShell\ディレクトリに素早く移動することができます。$psh
変数を使用して。

しかし、この方法は現在のPowerShellセッションにのみ適用されます。変数を永続化しない限り、次の手順で示されているように、この方法は機能しません。
最後に、以下のコマンドを実行して、ev_psh
環境変数の値を現在のディレクトリとして設定します。現在のディレクトリがev_psh
変数のディレクトリと異なることを確認してください。

PowerShellの位置履歴をサイクリングする
PowerShellでディレクトリをサイクリングするもう1つの迅速な方法は、位置履歴を使用することです。 -Path
パラメータは、Set-Location
コマンドレットに指定された値に基づいて、位置履歴(前方および後方)から別のディレクトリに移動するよう指示します(-
または+
)
PowerShellの位置履歴をサイクリングするには:
次のコマンドを実行して、履歴から場所を現在のディレクトリとして設定します。 +
文字は、場所の履歴で前方に移動し、-
文字は後方に移動します。

結論
ファイルシステムのナビゲーションは、オプションが限られている場合にはややこしいことがあります。しかし、Set-Location
のようなPowerShellのディレクトリ変更コマンドを使えば、多くのオプションが利用できます。ファイルシステムをより効率的にナビゲートする方法は、完全にあなた次第です。
さらに、Push-Location
と Pop-Location
を使って最近の場所を保存・呼び出す方法をマスターすることは、貴重なスキルです。
これらのテクニックを使用すると、PowerShellでディレクトリや場所を迅速かつスムーズに移動できます。さらに改善するためには、Get-ChildItem
などの追加のコマンドについて学ぶことを考えてみてはいかがでしょうか?これにより、日常のタスクで多くの時間を節約できます。
Source:
https://adamtheautomator.com/powershell-change-directory/