PowerShell で作業ディレクトリを変更する
多くの標準コマンドプロンプト(CMD)コマンドは、Windows PowerShell 環境で機能します。PowerShell 環境では、これらのコマンドが、エイリアスを使用して、ping などの最も基本的なコマンドから、レガシー環境の ipconfig などの最も使用されているコマンドに転送されます。
Windows PowerShell で引き続き機能する CMD コマンドの 1つの例は、ディレクトリ変更コマンドまたは cd および chdir です。
Windows PowerShell 内でレガシーコマンド cd および chdir を使用できますが、特定の状況では、PowerShell コマンドレット Set-Location を使用して、適切でクリーンなコードを構築することをお勧めします。
PowerShell で Set-Location コマンドレットを使用して作業ディレクトリを変更する
Set-Location コマンドレットも同様に、作業ディレクトリを従来の対応する cd や chdir のような指定された場所に設定します。このコマンドレットと従来のコマンドとのわずかな違いは、Set-Location コマンドレットは、CMD.EXE では実行できない作業ドライブとディレクトリの両方を同時に変更するのに便利なことです。
コマンドプロンプトで作業ディレクトリを別のドライブに変更する必要がある場合でも、最初に <ドライブ文字>:を入力してから、cd および chdir コマンドを開始して作業ディレクトリのパスを変更する必要があります。
コマンド・プロンプト:
C:\> cd C:\Temp
C:\Temp> cd D:\Docs
C:\Temp>
#To change the working drive, type the drive letter
C:\Temp> D:
D:\>
パワーシェル:
PS C:\> Set-Location C:\Temp
PS C:\Temp> Set-Location D:\Docs
PS D:\Docs>
Set-Location コマンドレットは、追加のパラメーターがあるため、従来のコマンドとは異なります。
以下にいくつかの例を示します。
Set-Location -Path C:\Temp
上記のスニペットの例では、-Path パラメーターがスクリプト環境の新しい作業ディレクトリを指定します。ただし、パスにスペースが含まれている場合は、それらを一重引用符('')または二重引用符("")で囲むことを忘れないでください。
Set-Location -Path "C:\Temp\Temporary Documents"
Set-Location コマンドレット内のもう 1つの便利なパラメーターは、-PassThru パラメーターです。このパラメータは、戻り値を変数に格納するために使用できる新しい作業ディレクトリを返します。
サンプルコード:
$newDir = Set-Location -Path C:\Temp -PassThru
Write-Output $newDir.path
出力:
C:\Temp
また、-PassThru パラメーターがある場合にのみ、Set-Location コマンドレットの完全なプロパティリストにアクセスできます。
サンプルコード:
Set-Location -Path G: -PassThru | fl *
出力:
Drive : G
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : G:\
Path : G:\
最後に、cd と chdir の他に、Windows PowerShell は Set-Location の別のエイリアスとして sl も使用します。これを使用して、より高速でスムーズなスクリプトアプローチを行うことができます。
sl -Path C:\Temp
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn