PowerShell 7“Where-Object”及其别名未返回任何内容

PowerShell 7“Where-Object”及其别名未返回任何内容

我将尝试使其尽可能简洁。

我正在使用 PowerShell 7.2.0,但无法使该where-object命令或其别名where正常?工作。我想要的是与CMD 中的命令
相同的功能。where

我尝试了该命令及其别名,但它们都没有返回任何内容。我确认它们已经存在(无需设置别名)使用get-alias命令。

我怎样才能解决这个问题?

答案1

相当于电源外壳获取子项

不带任何参数,相当于dircmd中的。

PS C:\...\DummyDesktop>gci


    Directory: C:\Users\keith\DummyDesktop


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        10/30/2021   3:51 AM             11 logs.txt
-a----        11/14/2021  11:07 PM           4833 Regex Whitespace Mode.txt
-a----         11/9/2021   4:51 AM           1011 troubleshooting updates.txt
-a----         11/9/2021   2:55 AM            143 Update Error Troubleshooting.url
  • 如果未指定路径,它将使用当前位置。
  • 要包含当前位置或指定路径的子目录,请使用-REcurse( -s) 参数。
  • Get-ChildItem许多简单的搜索可以通过使用带有文字和/或通配符的各种参数来完成。
  • 更复杂的搜索可能需要将结果通过管道传输GetChildItemWhere-Object
  • 因为您需要完全限定路径,所以您会需要FullName返回的 FileInfo 对象的属性gci
PS C:\...\Documents>gci ventra*


    Directory: C:\Users\keith\Documents


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          3/2/2016  12:02 PM             27 Ventra.txt
-a----          4/5/2021  11:13 PM            181 Ventra.zip


PS C:\...\Documents>(gci ventra*).FullName
C:\Users\keith\Documents\Ventra.txt
C:\Users\keith\Documents\Ventra.zip

您给出的例子如下:

(gci pyton* -Recurse).FullName
  • 从根目录或已知为以下位置祖先的文件夹执行python.exe
  • 如果从系统驱动器的根目录进行搜索,您很可能需要使用-ErrorAction SilentlyContinue( -ea silent) 参数来抑制Access denied错误。

答案2

以下函数为我提供了与 相同的where功能cmd

function which ($command) {
    Get-Command -Name $command -ErrorAction SilentlyContinue | 
        Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}

答案3

您可以使用whereCMD 使用的实用程序(例如where.exe python)。

相关内容