回答:
dir <drive: [drive:]> /s | findstr /i <pattern>
-代替案-
dir /s <drive:>\<pattern>
dir c: d: /s | findstr /i example.txt
-代替案-
dir /s c:\example.txt
dir c: /s example.txt
動作します。
dir /s C:\example.txt
そうです。
\b
が簡単に使用する最も類似した結果(出力のみのパス)。find <folder> -name <pattern>
-> dir /s /b <folder><pattern>
。例find /tmp -name *.txt
-> dir \s \b C:\temp\*.txt
。ただし、dir
常に絶対パスのリストを返しますが、find
常に接頭辞が付いたパスを提供します<folder>
Find-ChildItem
Windows Powershell のコマンドレットは、Unix / Linuxのfindコマンドに相当します
http://windows-powershell-scripts.blogspot.in/2009/08/unix-linux-find-equivalent-in.html
Find-ChildItemオプションの一部
Find-ChildItem -Type f -Name ".*.exe"
Find-ChildItem -Type f -Name "\.c$" -Exec "Get-Content {} | Measure-Object -Line -Character -Word"
Find-ChildItem -Type f -Empty
Find-ChildItem -Type f -Empty -OutObject
Find-ChildItem -Type f -Empty -Delete
Find-ChildItem -Type f -Size +9M -Delete
Find-ChildItem -Type d
Find-ChildItem -Type f -Size +50m -WTime +5 -MaxDepth 1 -Delete
開示:私はFind-ChildItem
コマンドレットの開発者です
Find-ChildItem
公式のコマンドレットではなく、PowerShellには含まれていません。このコマンドレットを誰かのOneDriveからダウンロードする必要があります。それと、bash、cygwin、unixutils、または単にUNIXを実行できる他のプログラムをダウンロードするだけで、違いはありませんfind
。
追加のコマンドレットがインストールされていない場合は、単に次を使用できますGet-ChildItem
。
Get-ChildItem -Filter *.zip -Recurse $pwd
dir
、おそらく短いエイリアス、ls
またはのいずれかを使用するgci
必要があります。
あなたはディレクトリ階層内のファイルを検索するためのUnixの検索を使用している場合は、PowerShellの道を使用することですGet-ChildItem
(別名であるgci
)コマンドレットをしてして結果をフィルタリングWhere-Object
(別名があるwhere
)コマンドレットを使用します。
たとえばC:\Users\
、名前に「essential」という単語が含まれるすべてのファイルを検索するには、次のようにします。
PS> gci -Path "C:\Users\" -Recurse | where {$_.Name -like '*essential*'}
この-like
オプションを使用すると、パターンマッチングにワイルドカードを使用できます。
これは正確にGNU findではありませんが、powershellの下でのlinuxコマンドラインの哲学とより一致しています:
PS> dir -recurse -ea 0 | % FullName | sls <grep_string>
例:
PS> cd C:\
PS> dir -recurse -ea 0 | % FullName | sls "Program" | sls "Microsoft"
PS> dir -recurse -ea 0 | % FullName | sls "Program" | sls "Microsoft" | out-gridview
注:「|%FullName」の後に返されるものはすべて、オブジェクトではなく文字列です。
ただし、Where演算子「?」を使用することもできますが、より多くの作業が必要になりますが、それほど高速ではありません。
PS> cd C:\
PS> dir -Recurse -ea 0 | ? FullName -like "*Program*"
| ? FullName -like "*Microsoft*"
| % FullName
| out-gridview
簡単なショートカットを次に示します。
PS> function myfind {dir -recurse -ea 0 | % FullName | sls $args }
PS> cd C:\
PS> myfind "Programs" | sls "Microsoft"
#find all text files recursively from current directory
PS> myfind "\.txt$"
#find all files recursively from current directory
PS> myfind .