
PowerShell では、ある意味では、限定された範囲で正規表現を実行できると思います。もっと多くのことができることは間違いありませんが、なぜここにないのかわかりません。正規表現を使用してファイル/ディレクトリを指定しようとしています。
たとえば、「qwe」というディレクトリがある場合、次のように表示されます。
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]
d---- 24/08/2014 1:28 PM qwe
でもできない
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e
(qweディレクトリを取得するため)
そしてもし私が
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..
その後、ディレクトリに戻りますが、正規表現を使用して、2文字以上または2文字のファイル/ディレクトリに一致させる方法が見つかりません。..
ただし、正規表現のこの側面はサポートされています [abcd] ('a' または 'b' または 'c' または 'd' に一致する文字クラス) または [az] ですが、[abcd] は結果が 1 文字の場合にのみ一致するため、正規表現らしくありません。適切な正規表現では、通常、その文字を含むすべてのものと一致 (その文字が複数ある場合も含む) します。
答え1
ドットはファイル名に対して特別な意味を持つため、このようなタイプのフィルタリングには Where-Object (またはその短縮形) を使用する必要があります。
Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }