我正在所有的文件夹中查找一个文件。

Copyforbuild.bat在很多地方都有,我想递归搜索。

$File = "V:\Myfolder\**\*.CopyForbuild.bat"

如何在PowerShell中做到这一点?


当前回答

我用它来查找文件,然后让PowerShell显示结果的整个路径:

dir -Path C:\FolderName -Filter FileName.fileExtension -Recurse | %{$_.FullName}

你总是可以在FolderName和/或FileName.fileExtension中使用通配符*。例如:

dir -Path C:\Folder* -Filter File*.file* -Recurse | %{$_.FullName}

上面的例子将搜索C:\驱动器中以单词folder开头的任何文件夹。因此,如果你有一个名为FolderFoo和FolderBar的文件夹,PowerShell将显示来自这两个文件夹的结果。

文件名和文件扩展名也是如此。如果你想搜索一个具有特定扩展名的文件,但不知道文件的名称,你可以使用:

dir -Path C:\FolderName -Filter *.fileExtension -Recurse | %{$_.FullName}

反之亦然:

dir -Path C:\FolderName -Filter FileName.* -Recurse | %{$_.FullName}

其他回答

Windows系统: 搜索'c:\temp'目录下的所有。py文件,输入:dir -r *.py或dir *.py -r

*Nix (Linux / MacOs系统: 在终端类型:find /temp -name *.py

这对我来说很好。

试试这个:

Get-ChildItem -Path V:\Myfolder -Filter CopyForbuild.bat -Recurse | Where-Object { $_.Attributes -ne "Directory"}

要向@user3303020添加答案并将搜索结果输出到文件中,可以运行以下命令

Get-ChildItem V:\MyFolder -name -recurse *.CopyForbuild.bat > path_to_results_filename.txt

这样可能更容易搜索正确的文件。

Get-ChildItem V:\MyFolder -name -recurse *.CopyForbuild.bat

也可以

我用它来查找文件,然后让PowerShell显示结果的整个路径:

dir -Path C:\FolderName -Filter FileName.fileExtension -Recurse | %{$_.FullName}

你总是可以在FolderName和/或FileName.fileExtension中使用通配符*。例如:

dir -Path C:\Folder* -Filter File*.file* -Recurse | %{$_.FullName}

上面的例子将搜索C:\驱动器中以单词folder开头的任何文件夹。因此,如果你有一个名为FolderFoo和FolderBar的文件夹,PowerShell将显示来自这两个文件夹的结果。

文件名和文件扩展名也是如此。如果你想搜索一个具有特定扩展名的文件,但不知道文件的名称,你可以使用:

dir -Path C:\FolderName -Filter *.fileExtension -Recurse | %{$_.FullName}

反之亦然:

dir -Path C:\FolderName -Filter FileName.* -Recurse | %{$_.FullName}