SOURCE에서 DESTINATION으로 파일의 롤백 사본


3

SOURCE에서 DESTINATION으로 파일 사본을 롤백하는 방법은 무엇입니까? 마 젠토를 기반으로 한 예를 들어 보도록하겠습니다 (하지만 중요하지는 않습니다).

새 모듈을 설치하면 zip 파일이 생성되고 c : \ temp \ my_new_module과 같은 임시 폴더에 압축이 풀립니다.

zip에서 압축을 푼 디렉토리와 파일이 많이 있습니다. 일부 디렉토리는 Magento 디렉토리를 매핑하고 일부는 새 디렉토리입니다.

그런 다음 주 경로 (c : \ temp \ my_new_module)에서 magento 루트 경로 (c : \ magento)로 파일을 복사합니다.

며칠 후 모듈을 테스트했는데 마음에 들지 않으면 어떻게 DESTINATION을 롤백 할 수 있습니까? 즉, DESTINATION = c : \ magento에서 제거하는 방법 :

  1. c : \ magento의 새 파일이있는 새 디렉토리 (SOURCE에서 복사)
  2. 기존 Magento 디렉토리에 추가 된 새 파일

복사 붙여 넣기 전에 이미 존재했던 DESTINATION의 파일과 폴더를 보존하고 싶다는 의미입니다! SOURCE의 어떤 항목도 제거하고 싶지 않습니다 (제거 또는 기타).

나는 그것을하기위한 스크립트를 찾고있다 (명령 줄), 나는 그것이 소스와 목적지를 비교할 것이라고 생각한다.

For Each File from SOURCE
    if FILE_EXIST in DESTINATION 
    Then DELETE FILE From DESTINATION
    If DIRECTORY_IS_EMPTY in DESTINATION 
    THEN DELETE DIRECTORY in DESTINATION

(후자는 비어 있지 않은 디렉토리, 즉 사본 전에 작성된 디렉토리를 보존합니다)

도움을 주셔서 감사합니다,로드


my_folder를 삭제하면 동일한 my_new_folder로 끝나기 때문에 귀하의 질문은 이해가되지 않습니다. 따라서 폴더를 올바르게 삭제하면 폴더를 복사하고 삭제하는 이유는 무엇입니까? 어쩌면 당신은 당신이 뭔가를 의미하는 질문을 의미했을 수도 있습니다 ... 그 경우, 더 명확하게 다시 작성해야합니다.
일요일

귀하의 질문에 대답했지만 파일을 읽은 후 한 위치에서 다른 위치로 파일을 복사하고 이미 존재하므로 복사 한 파일을 소스 위치에서 제거하려는 이후 달성하려는 것을 올바르게 지정하도록 수정해야한다고 생각합니다. 새로운 대상 디렉토리로 복사되었지만 당신이 달성하려고하는 오타가 두 개 이상 있다고 생각합니다.
Pimp Juice IT

나의 나쁜, 나는 질문을 다시 썼다
Rod

답변:


2

내 질문은 내가 그 일을 한 후에 내가 복사 한 모든 파일을 자동으로 제거하는 방법은 무엇입니까?

Robocopy 를 사용 하여 모든 파일과 하위 폴더의 [source] 디렉토리를보고 다른 소스 디렉토리와 비교하여 소스에 이미 존재하는 동일한 파일이 있는지 반복적으로 확인할 수 있습니다.

대상에 동일한 파일이 이미 존재하는 경우 (복사하는 폴더) 소스에서 파일을 삭제하도록 옵션을 사용하여 재귀 적으로 수행하지만 폴더를 제거 하지는 않습니다.

복사 조작을 수동으로 완료하므로 대상 디렉토리에없는 소스의 파일을 복사하지 않도록 옵션을 사용할 수도 있습니다.

대상에 이미 존재하는 소스에서 재귀 적으로 FILES 만 삭제하면됩니다. 소스에서 대상으로 새 파일의 복사 작업을 수동으로 완료하고 이미 수동으로 대상으로 복사 한 소스의 파일 정리를 단순화하는 데 도움이되는 항목 만 있으면됩니다.


로보 카피 스크립트

위에 나열된 시나리오를 테스트했으며 설명과 예상대로 작동 하여이 방법이 테스트되었습니다.

@ECHO ON
SET Source=F:\TestSource
SET Destination=F:\TestDest

ROBOCOPY "%Source%" "%Destination%" *.* /S /IS /PURGE /MOV /NOCOPY
GOTO EOF

추가 자료

         /S :: copy Subdirectories, but not empty ones.
    /NOCOPY :: COPY NO file info (useful with /PURGE).
     /PURGE :: delete dest files/dirs that no longer exist in source.
       /MOV :: MOVe files (delete from source after copying).
        /IS :: Include Same files.

미안 내 나쁜, 내 질문은 명확하지 않았다. DESTINATION을 이전 상태로 롤백하고 싶습니다. 내 질문을 업데이트했습니다. 다른 제안?
Rod
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.