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