パスを検証しようとしているので、意味のあるエラーログを出力できます。ワイルドカードで問題が発生しています。 これは、フォルダと何かがある場合を除いてFalseを返しますが、Trueを返します。テストパス-isValid withワイルドカード
Test-Path -isValid -path:"C:\Somefolder\*"
-literalPathはワイルドカードを解釈しないため、このように動作しません。
Test-Path -isValid -literalPath:"C:\Somefolder\*"
私の感覚では、私はワイルドカードをテストしているつもり、と親フォルダにTest-Path -isValid
見つかった場合だということです。しかし、私は-like
で問題に遭遇します。なぜなら、私は* .EXTのような条件を実際にテストすることができないからです。唯一の本当の答えはRegExだと私は思っていますが、これは基本的なものなので、RegExに頼る必要はないはずです。おそらく何か不足しています。 さまざまな理由から、PS v2に限定されています。
編集:明確にするために、実際のパスは可変です。ユーザーはXMLファイル内のパスを提供し、パスを検証してそのパスを使用します。したがって、ユーザーが特定のパスのすべてのTXTファイルを削除したいと思うかもしれません。またはすべてのファイル。またはすべてのファイルとサブフォルダ。したがって、C:\ Somefolder \ *をサポートする必要があります。それらがあった場合C:\\ Somefolder \ *またはC:Somefolder \ *無効なパスとしてフラグを設定したいと思います。しかしC:\ Somefolder \ * Somefolderが存在しない場合、無効なパスではなく、フォルダが見つからないため、別のエラーとしてフラグを設定します。
Test-Path -IsValid C:\Somefolder
編集:
どのパスをテストしますか? 'Test-Path" C:\ Somefolder "は十分ですか? –