PowerShell 7 "Where-Object" 및 해당 별칭은 아무것도 반환하지 않습니다.

PowerShell 7 "Where-Object" 및 해당 별칭은 아무것도 반환하지 않습니다.

나는 이것을 가능한 한 간결하게 만들려고 노력할 것입니다.

PowerShell 7.2.0을 사용하고 있는데 where-object명령이나 별칭을 where가져와 ?작동할 수 없습니다. 내가 원하는 것은 CMD의 명령
과 동일한 기능입니다 .where

명령과 해당 별칭을 시도했지만 아무 것도 반환하지 않습니다. 이미 거기에 있는 것을 확인했습니다(별칭을 설정할 필요가 없습니다.) get-alias명령을 사용합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

동등한파워셸~이다Get-ChildItem.

dir매개변수가 없으면 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
  • 경로를 지정하지 않으면 현재 위치를 사용합니다.
  • 현재 위치나 지정된 경로의 하위 디렉터리를 포함하려면 -REcurse( -s) 매개 변수를 사용합니다.
  • Get-ChildItem리터럴 및/또는 와일드카드와 함께 다양한 매개변수를 사용하여 많은 간단한 검색을 수행할 수 있습니다 .
  • 더 복잡한 검색의 경우 결과를 GetChildItem로 연결해야 할 수도 있습니다 Where-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.

관련 정보