IT/Powershell

Get-ChildItem 활용법

AsianDude 2023. 11. 23. 23:09

Powershell에 cmdlet 중에서 Get-ChildItem은 여러 기능을 한다.

 

Get-ChildItem : 한국어로 하면 어느 한 경로(location)나 여러 경로에서(locations) 에서  아이템이나 자식 아이템을 가지고 온다고 정의 되어 있다.

 

Git-bash를 쓰면 mkdir이라고 있는데 경로 만드는 것인데 어떻게 보면 유사해 보일 수도 있다. dir이 경로 입력과 유사하다.

 

특정 파일 삭제 예시] A라는 폴더 안에 B폴더가 있고 B폴더 안에 b.xlsx 파일 하나 있고 A라는 폴더안에 a.xlsx 파일이 있고 기타 txt파일이 있다고 해 보자. 그리고 A폴더 안에 모든 엑셀 파일 지울려면, 아래 처럼 치면 된다. 참고로 -Recurse는  Recursion(재귀호출) 이라고 생각하면 된다.

 > Get-ChildItem -Path (경로명 : C:\A\*.xlsx) -Recurse | Remove-Item -Confirm

=> Remove-Item -Confirm하기 전에 Remove-Item -whatif를 먼저 하고 컨펌 하기를 추천한다. confirm하면 바로 삭제 된다. 

 

특정 파일 복사 예시] A라는 폴더 안에 a.xlsx를 다른 경로에 있는  C라는 폴더에 복사 이동을 하고 싶다? 하면 아래 처럼 치면 된다.

 > (Get-ChildItem -Path (경로명 : C:\A\a.xlsx) ).CopyTo('복사될 경로명')

 => 괄호 안에 Get-ChildItem cmdlet과 -Path 파라미터와 인수(arg.)를 기재하고 그리고 메서드 CopyTo메서드를 사용해서 복사한다. CopyTo 괄호 안에 string 값을 써야 하기 때문에 따옴표 붙인다.

 

**Get-ChildItem -Path 경로명 에서 어떤 메서드나 프로퍼티를 보고 싶으면 Get-Member나 alias인 gm을 쓰면 된다.

 .> Get-ChildItem -Path 경로명 | Get-Member

 => 중간에 "|" 는 파이프라인이며 전에 이는 결과를 뒤에다 이어 준다.