컴퓨터를 사용하다 보면 특정 용량 이상 또는 특정 용량 이하의 파일들을 걸러 내고 싶은 경우가 있다.
이런 경우엔 단순히 윈도우 탐색기에서 크기에 따라 정렬을 한 이후에 드래그 하여 지우는 방법 등을 쓸 수가 있다.
하지만 같은 폴더내에 특정 확장자의 파일만 지우고 싶은 경우에는 윈도우 탐색기만으로는 부족하다.
이런 경우 powershell 을 이용하면 너무나 간단히 작업을 완료 할 수가 있다.
나의 경우엔 D:\movie_folder 안에 있는 avi 파일 중에서 용량이 100 MB 이하인 파일들을 지우고 싶었다.
위 작업을 수행하는 powershell 코드는 아래와 같다.
gci d:\movie_folder\* -Include *.avi | Where-Object -FilterScript { $_.length -lt 100MB } | Remove-Item –Force
위 코드에 대해 설명을 해 보자.
- gci 는 Get-ChildItem 의 alias(별명) 으로서 우리가 흔히 알고있는 dir 과 같은 의미이다. 즉 저장소 내의 하위 항목들을 가져 온다.
- d:\movie_folder\* 는 찾고자 하는 폴더
- -Include *.avi 은 avi 파일만 찾겠다는 의미
- 이에 대해 파이프라인( | ) 으로 연결해서 Where-Object 로 찾고자 하는 조건을 만들어준다.
- $_.length 은 각 항목들의 크기를 말한다.
- -lt 는 비교 연산자이다. < 를 의미 하는 것으로 작다 를 나타내는 비교 연산자이다. 100 MB 보다 작은 파일들만 걸러낸다.
- Remove-Item –Force 는 강제로 삭제하라는 의미다.
위 코드에서 비교연산자 부분에 대해 추가적인 설명을 하자면
powrshell 에서는 우리가 흔히 알고 있는 비교 연산자인 > , < , >= 등을 쓰지 않는다.
대신 다음과 같이 문자로 표시 한다.
표 1, powershell 비교 연산자
-lt | Less than | 작다 |
-le | Less than or equal to | 작거나 같다 |
-gt | Greater than | 크다 |
-ge | Greater than or equal to | 크거나 같다 |
-eq | Equal to | 같다 |
-ne | Not equal to | 같지 않다 |
-like | Like (uses wildcards for matching) | 유사하다 |
-notlike | Not like (uses wildcards for matching) | 유사하지 않다 |
표 출처: powershell 비교연산자
'programming language > powershell' 카테고리의 다른 글
Powershell 이전 directory 로 돌아가기 CD - (2) | 2013.10.20 |
---|---|
Powershell profile 적용 및 alias (2) | 2013.10.16 |
Powershell 경우의 수 조합 다 구하기(Cartesian Product) (0) | 2013.08.18 |
PowerShell Script가 실행되는 현재 폴더 확인 (0) | 2012.12.17 |
Powershell 지정 일 이후의 파일 백업 (0) | 2012.03.07 |
Powershell 특정 확장자 파일의 경로 다 찾기 (0) | 2011.04.01 |
powershell 을 이용한 program uninstall (0) | 2011.02.13 |
폴더에 있는 파일들의 확장자 알아보기 (0) | 2011.01.31 |
댓글