MyFolderというサーバー上にフォルダーがあります。MyFolder.1、MyFolder.2、MyFolder.3などと呼ばれる追加のフォルダーがあります。
私が実行した場合:
gci C:\Sample | ? { $_.Name -like "MyFolder.*" }
期待どおりの出力が得られます。
Directory: C:\Sample
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 16/10/2012 12:16 MyFolder.1
d---- 16/10/2012 12:16 MyFolder.2
d---- 16/10/2012 12:16 MyFolder.3
ただし、実行した場合:
gci C:\Sample -Filter "MyFolder.*"
私は得る:
Directory: C:\Sample
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 16/10/2012 12:16 MyFolder
d---- 16/10/2012 12:16 MyFolder.1
d---- 16/10/2012 12:16 MyFolder.2
d---- 16/10/2012 12:16 MyFolder.3
MyFolderが出力にどのように含まれるかについて混乱しています。出力は同じだと思います。
オンラインヘルプでは、フィルターの構文がプロバイダーに基づいていることが強調されていますが、このインスタンスで使用されているプロバイダーがわかりません。
ここで基本的な知識が不足していますか?正規表現文字列をフィルターに渡そうとしました"MyFolder\.*"
が、これは単に何も返しません。簡単なものが欠けていると思います。
Powershellバージョン2を実行しています。
解像度
ワイルドカードマッチングの違いを指摘してくれたRomanKuzminに感謝します。以下に期待される出力を示します。
gci C:\Sample\MyFolder.*
将来的には、コードのノイズを減らすために、この構文を簡単に使用する予定です。