簡単な例として、フォルダー があり、Root
その中に 3 つのフォルダーがあるとします。Folder1、Folder2、および Folder3。これらの各フォルダー (を含むRoot
) には、.pdb ファイルを含む多数のファイルが含まれています。PowerShell Get-ChildItem コマンドレットRoot
を使用して、Folder2 の .pdb ファイルを除くすべてのフォルダー (を含む) 内のすべてのファイルを返したいと考えています。私が使用する場合:
Get-ChildItem -Path C:\Root -Recurse -Exclude *.pdb
次に、すべてのディレクトリにある .pdb 以外のすべてのファイルを取得します。これは、私が望むものに近いものです。だから私は、以下が私が望むものを達成すると仮定しました:
Get-ChildItem -Path C:\Root -Recurse -Exclude \*\\Folder2\\*.pdb
ただし、Folder2 (またはその他のフォルダー) 内の pdb ファイルは除外されません。-Exclude
など、フィルターのいくつかのバリアントを試しましたFolder2\\\*.pdb
が、機能しません。実際、使用\*\\\*.pdb
しても何も起こらないようです。フォルダーから除外される .pdb ファイルはありません。
そのため、ワイルドカードはディレクトリには使用できず、ファイル名のみに使用できるようですが、何か間違ったことをしているだけだと思います。ワイルドカードと範囲演算子について説明しているこの記事を見つけましたが、残念ながら、それらをディレクトリ名で使用することについては説明していません。ファイル名のみ。