PowerShell 7 "Where-Object" y sus alias no devuelven nada

PowerShell 7 "Where-Object" y sus alias no devuelven nada

Intentaré que esto sea lo más conciso posible.

Estoy usando PowerShell 7.2.0 y no puedo conseguir que el where-objectcomando o sus alias wherefuncionen ?.
Lo que quiero es la misma funcionalidad que con el wherecomando en CMD.

Probé el comando y sus alias, pero ninguno devuelve nada. He confirmado que ya están allí (no es necesario establecer alias) con el get-aliascomando.

¿Cómo puedo arreglar esto?

Respuesta1

El equivalente enPotencia ShellesGet-ChildItem.

Sin ningún parámetro, es el equivalente dira cmd.

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
  • Sin ninguna ruta especificada, utiliza la ubicación actual.
  • Para incluir subdirectorios de la ubicación actual o de la ruta especificada, utilice el parámetro -REcurse( -s).
  • Se pueden realizar muchas búsquedas simples utilizando varios parámetros Get-ChildItemcon literales y/o comodines.
  • Las búsquedas más complicadas pueden requerir canalizar los resultados de GetChildItema Where-Object.
  • Como desea la ruta completa, querrá que la FullNamepropiedad del objeto FileInfo sea devuelta por 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

Los ejemplos que diste se verían así:

(gci pyton* -Recurse).FullName
  • Ejecutado desde la raíz o una carpeta que se sabe que es un antepasado de la ubicación depython.exe
  • Si busca desde la raíz de la unidad de su sistema, lo más probable es que desee utilizar el parámetro -ErrorAction SilentlyContinue( ) para suprimir errores.-ea silentAccess denied

Respuesta2

La siguiente función funcionó para mí al obtener la misma funcionalidad que wheretiene cmd:

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

Respuesta3

Puede utilizar la whereutilidad que utiliza CMD (por ejemplo, where.exe python).

información relacionada