このようなワイルドカードを使用して、Windowsコマンドラインでファイルを検索するにはどうすればよいですか?
C:\Users\*\AppData\Local\*.txt
Windows PowerShellはこれを簡単に実行できます。
Get-ChildItem C:\Users\*\AppData\Local\*.txt
サブフォルダーを含める場合:
Get-ChildItem C:\Users\*\AppData\Local\*.txt -recurse
非表示(など)ファイルに関しては、Powershellのhelp Get-ChildItem
さんのコメント:
既定では、Get-ChildItemは非表示でないアイテムを取得しますが、Directory、File、Hidden、ReadOnly、およびSystemパラメーターを使用して、これらの属性を持つアイテムのみを取得できます。複雑な属性検索を作成するには、Attributesパラメーターを使用します。これらのパラメーターを使用する場合、Get-ChildItemは、パラメーターがAND演算子で接続されているかのように、すべての検索条件を満たすアイテムのみを取得します。
Windows向けの優れたUnixシェルであれば、これが可能です。
たとえば、これは私の Hamilton C Shell のスクリーンショットです(申し訳ありませんが、一致はありません)。 3番目の例で使用されている ...
wildcard は、パターンの残りの部分が一致するために必要なものは何でも、0以上のディレクトリレベルに一致します。
Cygwinbash
を使用すると、次のようになります。 CygwinはUnixの規則に従っているため、ここにいくつかの違いがあります。パスは通常、スラッシュで入力され、バックスラッシュはエスケープ文字です。 Unixはドライブ文字を認識しないため、/cydrive/c
ドライブを参照するC:
表記を導入しています。 Unixと同様に、ワイルドカードは大文字と小文字を区別します。また、通常の複数ディレクトリレベルのワイルドカードをサポートしていますが、シェルに追加した...
は含まれていません。 (代わりに、おそらくfind
を使用します。)
Cmdで、C:\Users
に移動して実行します
dir /s /b | findstr AppData\Local | findstr txt
説明:dir /s
はすべてのファイルを再帰的に一覧表示し、/b
はフルパスを表示し、これらすべての子ファイル内でパイプライン演算子を使用して、文字列「AppData\Local」と「txt」の両方を検索します。