copy /b

Tip & Tech. : 2008. 11. 27. 11:40
반응형
출처 http://winnwe.com/windowsxp/perma/134/

 copy명령어는 커맨드 셸을 통해서 디렉토리간의 파일을 복사할 수 있는 명령어이기도 하지만, 파일을 병합 하거나 새롭게 생성하도록 하는 명령도 가능하다. 가장 많이 사용하는 경우는 주로 대상이 없이 원본만을 지정해서 수행하는 간단한 파일 복사명령으로써 copy [원본] [대상생략]형식으로 이루어지는 명령이다. 여기서 [원본]은 드라이브명 또는 디렉토리명이 포함되거나 단독으로 지정될 수 있다. 이렇게 [대상생략]이 이루어진 경우 복사되는 모든 파일은 현재의 커맨드를 실행하는 위치(현재 작업 디렉토리)가 [대상]이 된다.

copy d:*.*
;D드라이브의 모든 파일을 복사하지만 D드라이브의 작업디렉토리는 cd명령에 의해서 이동된 곳이다. 예를들면 기본적으로는 d:\가 작업디렉토리이지만, cd temp라는 명령이 실행되었다면 현재 D드라이브의 작업 디렉토리는 d:\temp이므로 copy d:*.*는 copy d:\temp\*.*와 동일하다. copy d:*.*copy d:.
;두개는 동일하게 작동한다.

copy d:\temp\*.*copy d:\temp\.
;두개의 명령도 동일하게 작동한다.

도움말을 보고 기본적인 스위치에 대해서 알아보면
help copy
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] 원본 [/A | /B]
     [+ 원본 [/A | /B] [+ ...]] [대상 [/A | /B]]

  원본         복사할 파일을 지정합니다.
  /A           ASCII 텍스트 파일임을 나타냅니다.
  /B           이진 파일임을 나타냅니다.
  /D           대상 파일이 암호화 없이 만들어지도록 허용합니다.
  대상         새 파일에 대한 디렉터리와/또는 파일 이름을 지정합니다.
  /V           새 파일이 올바르게 기록되었는지 확인합니다.
  /N           8.3 이름이 아닌 파일을 복사할 때, 짧은 파일 이름이 있으면
               그 이름을 사용합니다.
  /Y           이미 있는 대상 파일을 덮어쓸지를 확인하지 않습니다.
  /-Y          이미 있는 대상 파일을 덮어쓸지 확인하기 위해 묻습니다.
  /Z           다시 시작 모드에 있는 네트워크 파일을 복사합니다.

/Y 스위치는 COPYCMD 환경 변수에 이미 지정되어 있습니다.
이 설정은 명령줄의 /-Y 스위치에 의해 무시될 수 있습니다.
COPY 명령을 일괄 처리 스크립트에서 실행하지 않으면
기본적으로 이미 있는 파일을 덮어쓸지를 묻습니다.

파일을 한 파일에 붙여 넣으려면 원본에 여러 파일을 지정하고
(대표 문자 또는 파일1+파일2+파일3 형식을 사용하여)
대상에는 한 파일을 지정합니다.

 아 스키파일(ASCII File) /a 스위치와 이진파일(바이너리파일: Binanry File) 스위치 /b는 파일을 복사할시 해당 파일에 대한 특성을 참조하도록 하는 스위치라고 할 수 있다. 실질적으로 파일을 병합해서 복사하는 경우가 아니라면 이들 스위치가 필요치 않으며 바이너리로 취급하는 것이 기본값(스위치 /b)이다. 그러나 파일의 병합시에는 텍스트파일의 경우 파일의 끝에 EOF(End of File)라는 문자(ctrl+z)를 가져야 하는데, 이에 따라서 텍스트파일과 이진파일을 구분시켜 주는 역할로 A와 B가 필요하다.

도움말의 예제 하나를 보면 다음과 같은 명령이 있다.

copy /b *.exe combin.exe

;이 명령은 현재의 디렉토리의 확장자 .exe를 가지는 파일을 모두 병합해서 combin.exe로 병합하라는 명령이지만 스위치 b를 사용함으로써 이진파일로 처리하라는 의미이다. 따라서 ctrl+z를 EOF로 처리하지 않게 하라는 스위치이다.
반응형
Posted by Real_G