
나는 이것을 가능한 한 간결하게 만들려고 노력할 것입니다.
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
where
CMD가 사용하는 유틸리티(예: )를 사용할 수 있습니다 where.exe python
.