2013-07-26 3 views
0

대상에 복사 한 후 파일의 백업을 유지하는 배치 명령이 필요합니다. 지금은 목적지에 소스 디렉토리에서 모든 텍스트 파일을 복사해야
백업 배치 파일을 사용하여 파일을 대상에 복사

"1.txt" which has content (xyz) 
"2.txt" which has content (xyz) 
"5.txt" which has content (xyz) 
"6.txt" which has content (xyz)  

:

"1.txt" which has content (abc) 
"2.txt" which has content (abc) 

내가 4 개 대상 디렉토리에있는 파일이 있습니다

내가 소스 디렉토리에이 개 파일이 있다고 가정 이 경우에는 대상 디렉토리에 이미 두 개의 텍스트 파일 (1.txt 및 2.txt)이 있으므로 원본 폴더에서 복사하기 전에 백업해야합니다 (1.txt.bkup 2.txt .bkup).

대상으로 소스에서 복사 한 후, 내 목적지의 내용은 다음과 같아야합니다

"1.txt.bkup" which has content (xyz) 
"2.txt.bkup" which has content (xyz) 
"5.txt" which has content (xyz) 
"6.txt" which has content (xyz) 
"1.txt" which has content (abc) 
"2.txt" which has content (abc)  

방법이 작업을 수행 할 수 있는가? 시암

+0

이 적은 시간을 촬영했을 질문을 게시보다! – devnull

답변

2

이 시도 : 문서를 읽기

cd /d sourcefolder 
for %%a in (*.txt) do (
    if exist "destinationfolder\%%~a" (
     move /y "destinationfolder\%%~a" "destinationfolder\%%~a.bkup" 
    ) 
    copy "%%~a" "destinationfolder\%%~a" 
) 
+0

답변 해 주셔서 감사합니다. 소스에서 복사 된 새로운 파일의 백업을 생성하는 제안. 하지만 필요한 것은 동일한 파일이 대상에 이미 있으면 복사하여 (이름을 .txt.bkup으로 바꾸고) 원본에서 복사하는 것입니다. 당신이 내 질문을 가지고 있기를 바랍니다. –

+0

좋습니다. 시도해보십시오. – Endoro

+0

작은 도움이되었습니다. 이제 dest 폴더에 백업이 있습니다. 이제 .txt.bkup의 이름을 .txt로 바꾸고 dest의 실제 .txt를 삭제해야합니다. 예 : 최종 도착 폴더를 갖는다 : 이때 1.TXT 1.txt.bkup 2.txt 는 1.TXT 제거되어야하며 1.txt.bkup는 1.TXT로 변경 될 shud. 이것이 어떻게 수행되는지 제안하십시오. –

관련 문제