代わりにこれを試してみることをお勧めします。CurrentLocation.Pathは、Registeryなどの他のプロバイダーパスを指すこともできます。
this.SessionState.Path.CurrentFileSystemLocation.Path
質問
PowerShell CMDLETを書いています。 cmdlet beginprocessing()メソッドの内部から、CMDletが呼び出された時点でデフォルトのディレクトリであるディレクトリを取得できるようにしたいと思います。
例:ユーザーがこれを行う場合:
cd \myDirectory
invoke-mycmdlet
デフォルトのシェルディレクトリがC: myDirectoryであることをコードに知りたいです。環境にアクセスすると、currentdirectoryは常にc: windows system32です
ポスターが環境を設定する必要がある場合、同様の投稿を見てきました:: get-locationを使用してシェル内から現在のディレクトリ。それは私にとってはうまくいきません。
基本的に、私のcmdletはいくつかのファイルシステムのものを実行します。ユーザーがディレクトリにcd のみを使用して、cmdletを実行できるようにしたいと考えています。古いコマンドコンソールから作業します。
解決
代わりにこれを試してみることをお勧めします。CurrentLocation.Pathは、Registeryなどの他のプロバイダーパスを指すこともできます。
this.SessionState.Path.CurrentFileSystemLocation.Path
他のヒント
ご存知のように、私はいつも投稿した直後にそれを見つけているようです。
したがって、私のcmdletはpscmdletから継承します。私が望んでいた道を手に入れることができることがわかりました
this.SessionState.Path.CurrentLocation.Path
(ここで、「これ」はpscmdletから継承するcmdletクラスです)
試してみてください Get-Location
cmdlet。 PowerShellホストの起動フォルダーではなく、スクリプトの現在の実行場所である必要があります。