2014. 10. 14. 14:35
반응형



bat파일로 zip파일로 묶을 일이 생겼다.

마우스를 사용해서 묶는것은 일이 아니지만 bat파일 내부에서 어떤 식으로 구현해야 할까??

일단 cmd창에 zip 이라고 치면 아래 처럼 해당 명령어 들이 주욱~~ 나온다.



영어를 잘하시는 분들은 위 커맨드만 보고도 어느정도 처리 할 수 있을것이다.

간단하게

cmd> zip -r [압축파일출력경로] [묶을 파일경로 또는 폴더]

여기서 -r은 폴더의 하위까지 모두 묶는다는 의미 이다.

예를 들어 진행해 보자

아래 그림처럼 e:\test 안에 압축할 파일들이 있다고 보면



1. test_파일.txt만 압축할때


 위에처럼 하면 아래처럼 test.zip파일이 생김을 확인 할 수 있다.



자 그렇다면 ABC폴더와 test_파일.txt를 모두 묶는다면?


      


위에처럼 파일이 묶였다. test.zip파일을 더블클릭하여 내부를 보면


    위 그림처럼 test폴더가 있고 그 안에


  나머지 파일들이 압축되어 있음을 볼 수 있다.  즉 test라는 폴더안에 파일을 넣고 그걸 압축시켰다는 말이다

   하지만 저런식으로 말고 압축파일 안에 test라는 폴더 없이 압축될 파일만 존재하려면 어떻게 해야 할가?

   이것땜시 삽질좀 했는데 알고 보니 ..헐..이다.

    압축시 cmd창에 경로를 현재 압축할 파일경로로 가서 실행해 주면된다.

    테스트시에는 c:\> 에서 명령을 전달했기 때문에 압축할 파일들의 상위폴더명으로 압축이 진행된것이다.


  그래서 일단 cmd창에서 e:\test 경로로 이동 후 아래처럼 명령어를 입력


그러면 test.zip 파일이 생성되어 있을것이고 그 파일을 열어보면



바로 test.zip 안에 압축파일이 바로 존재함을 알 수 있다.

그리고 해당경로에 있는 모든것을 압축시 특정 파일이나 특정 확장자등만 포함시키거나 제외 시키고 싶을때는

cmd>zip -r e:\test\test.zip .\*.* -x 파일명


저런식으로 하면 test_파일.txt가 빠진 상태로 압축된다.

만약 아래 처럼 한다면 어떻게 될까?

cmd>zip -r e:\test\test.zip .\*.* x 파일명

그렇다 특정파일명만 빼고 압축된다.


근데 저렇게 파일 하나만 압축하지 않으므로 

cmd>zip -r e:\test\test.zip .\*.* x *.doc

와 같이 하면 .doc를 가진 확장자만 빼고 압축된다

여기서 x의 옵션은  exclude라고 보면 된다.

반대로 특정 확장자나 특정 파일명만 넣으려면?

-i 옵션을 줘서 사용하면된다^^


정보는 공유되어야 한다 쭈욱~~~~


반응형
Posted by 소윤, 정윤 아빠~ 뿡뿡대마왕

댓글을 달아 주세요