質問

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ホストの起動フォルダーではなく、スクリプトの現在の実行場所である必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top