Join-Path
存在しないアイテムのパスを取得する方法になると思います。このようなもの:
join-path $pwd $filename
アップデート:
.Net「コード」を使用したくない理由がわかりません。Powershell は .Net ベースです。すべてのコマンドレットは .Net コードです。それを回避する唯一の正当な理由は、.Net コードを使用する場合、現在のディレクトリは Powershell が開始されたディレクトリであり、そうではないことです。$pwd
絶対パスと相対パスを処理できるように、これを行うことができると私が信じている方法をリストしているだけです。それらのどれも 1 つより単純に見えませんGetFullPath()
:
$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($filename)
絶対パスが渡されるかどうか心配な場合は、次のようにすることができます。
if(Split-Path $filename -IsAbsolute){
$filename
}
else{
join-path $pwd $filename # or join-path $pwd (Split-Path -Leaf $filename)
}
これは醜いものです
$item = Get-Item $filename -ea silentlycontinue
if (!$item) {
$error[0].targetobject
} else{
$item.fullname
}
同様の質問と同様の回答: Powershell: resolve path that might not exist?