web-dev-qa-db-ja.com

Powershellは環境変数をパスと連結します

だから私はこのコードを持っています:

$userprofile=Get-ChildItem Env:USERPROFILE
$localpath="$userprofile\some\path"

$localpathからの以下の出力を期待します。

c:\users\username\some\path

しかし、私が得るものは:

System.Collections.DictionaryEntry\some\path

したがって、もちろん、cd $localpathのようなものが失敗します。どうすれば必要なことを達成できますか?

11
KyferEz

辞書エントリではなく文字列値を取得する便利な方法(技術的にはGet-ChildItemはアクセスしています)変数の構文を使用するだけです:$Env:USERPROFILE のではなく Get-ChildItem Env:USERPROFILE

$localpath = "$env:USERPROFILE\some\path"

詳細については:

PowerShell環境プロバイダー

about_Environment_Variables

また、 Join-Path コマンドレットは、パスの2つの部分を組み合わせる良い方法です。

$localpath = Join-Path $env:USERPROFILE 'some\path'
15
John K