へのパイプラインは、私のプログラムは、このシナリオで作業することを拒否されています何らかの理由でユーザー関数のパラメータの問題
- 私は私が原因柔軟性
- の不足のためにコマンドレットを置き換えることを意図しているカスタム関数を持っています :
はこれが関数であるパイプラインを通じ 、この関数にファイルやフォルダオブジェクトを渡しています3210
この関数をGet-ChildItem
と同じように使用したい場合は、[System.IO.FileSystemInfo]
オブジェクトを入力し、すべての子(ここには含まれていないいくつかの追加基準でソートされたもの)を出力として取得します。
これは私が関数を呼び出す方法である:
Get-ChildItem $parentfolder_path |
Get-ChildItemCustom |
Do-SomethingElse
エラーを返すが(検証可能型[System.IO.FileSystemInfo]
のある)Get-ChildItem
の結果を文字列として扱われていることを説明しています。
タイプ "System.String"の "E:¥Data¥VHG-ITC-Test¥New folder¥archive"の値を "System.IO.FileSystemInfo"に変換することはできません。パラメータの前
タイプは常にありませんでした。 $item
が明示的にタイプを持っていなかった場合は、関数は(おそらく唯一の入力としてName
プロパティを取って)入力を読み違えなります
は、Get-ChildItemコマンドレットを:パス「:\ WINDOWS \ SYSTEM32 \新しいフォルダC」を見つけることができませんそれは存在しないからです。
したがって、関数はオブジェクト入力を適切に受け入れることができないようです。私は文字列をすべてのコストで使用することを避け、オブジェクトを動かすだけです。パラメータを間違って設定しましたか?私に何ができる?