Start a Conversation

해결되지 않음

이 게시글은 5년 이상 된 게시글입니다.

Closed

N

270 Posts

7944

September 19th, 2008 02:00

where명령으로 빠르게 원하는 파일 찾기

NT계열임에도 윈도 XP에서 이렇다할 파일 찾기 명령어가 없던 셈이라 dir을 이용해서 파일 및 위치를 확인할 수 있었다. 윈도 비스타에서는 where명령어가 도입되었는데 파일의 위치를 찾아주는 전용 명령어로써 유용하게 사용할 수 있다. where /?을 참조해서 예제를 살펴보고 실전에 활용할 수 있도록 실습을 해보자.
WHERE [/R dir]    pattern...설명:    검색 패턴에 해당되는 파일의 위치를 표시합니다.    기본값으로 현재 디렉터리 및 PATH 환경 변수에 지정된 경로를    검색합니다.매개 변수 목록:    /R       지정된 디렉터리부터 시작하여 제공된 패턴과 일치하는             파일을 재귀적으로 검색하고 표시합니다.    /Q       일치하는 파일 목록을 표시하지 않고 종료 코드만             반환합니다(자동 모드).    /F       일치하는 파일 이름을 큰따옴표로 묶어 표시합니다.    /T       일치하는 모든 파일의 파일 크기, 마지막 수정한 날짜             및 시간을 표시합니다.    pattern  파일에서 검색할 검색 패턴을 지정합니다.             패턴에 * 및 ? 와일드카드를 사용할 수 있습니다.             "$env:pattern" 및 "path:pattern" 형식도 지정할 수 있습니다.             "env"는 환경 변수이며 "env" 환경 변수에 지정된 경로에서             검색을 수행합니다.             /R과 더불어 이 형식을 사용할 수 없습니다.             패턴에 PATHEXT 변수의 확장을 추가하여 검색할 수도             있습니다.     /?      이 도움말을 표시합니다.  참고: 검색이 성공하면 오류 수준 0이 반환되며, 해당 항목을        찾을 수 없으면 1이 반환되고 검색이 실패하거나 오류가        발생하면 2가 반환됩니다.


1. WHERE /?
;도움말 표시

2. WHERE myfilename1 myfile????.*
;myfilename1이라는 파일과 파일이름이 10자로써 myfile로 시작되는 파일명을 가진 파일을 검색해라.
(myfilename1이라고 지정하면 확장자를 가진 파일을 해당없다.)

3. WHERE $windir:*.*
;환경변수 $windir로 지정된 경로에 모든 파일을 검색해라(배치 파일내)
$windir과 %windir%은 동일하다. 위에 명령은 아래처럼 대체될 수 도 있다.
WHERE %windir%:*.* (명령줄에서는 %를 사용)

4. WHERE /R c:\\windows *.exe *.dll *.bat
지정된 경로 c:\\windows와 하위에서 확장자 exe, dll, bat를 검색해라.

5. WHERE /Q ??.???
커맨드라인상에는 리턴값을 출력하지 않고 셸로 복귀할 때 OS로 반환.

6. WHERE "c:\\windows;c:\\windows\\system32:*.dll"
스위치 R은 하위경로를 포함하지만 여기에서는 지정된 경로(path)만 검색한다. 세미콜론은 경로를 연속지정할 때 사용

7. WHERE /F /T *.dll
스위치 F와 T는 검색된 파일에 다양한 출력효과로써 F는 경로를 포함한 파일이름을 큰따옴표(double quotation mark)로 묶어준다. T는 timestamp인 셈이다.

8. 출력 결과는 리다이렉션해서 파일로 저장하면 용이하다.
where /R %userprofile% *.* > %username%.txt
;현재 사용자의 홈디렉토리 이하의 전체 파일의 목록을 작성한다.

9. 특정 드라이브내의 avi확장자를 가진 동영상 파일목록을 작성한다.
where /R D:\\ *.avi > aviliist.txt

10 오류수준(errorlevel)은 배치파일내의 IF문에서 이용
where 명령수행
;IF errorlevel 3 goto winnwe
오류수준이 3이면 지정된 레이블 winnwe로 점프하라.

유닉스나 리눅스에 비하면 윈도 비스타의 커맨드 셸 명령어가 조족지혈인 것 같지만 배치파일도 작성하기 따라서는 상당히 복잡한 수준까지 갈 수 있다.
No Responses!
이벤트를 찾을 수 없습니다!

Top