[batch-file] 한 폴더에서 다른 폴더로 파일을 복사하는 배치 파일

모든 사용자가 서버에 활성 데이터를 저장하는 네트워크에 스토리지 폴더가 있습니다. 이제 서버는 장소 문제로 인해 새 서버로 교체 될 예정이므로 이전 서버 저장소 폴더에서 새 서버 저장소 폴더로 하위 폴더 파일을 복사해야합니다. 전 아래에 있습니다 :

\ Oldeserver \ storage \ data & files에서 \ New server \ storage \ data & files로.



답변

xcopy.exe 는 확실히 당신의 친구입니다. Windows에 내장되어 있으므로 비용이 전혀 들지 않습니다.

다만 xcopy /s c:\source d:\target

아마도 몇 가지 사항을 조정하고 싶을 것입니다. 우리가 추가하는 옵션 중 일부는 다음과 같습니다.

  • /s/e -빈 디렉토리 복사를 포함한 재귀 복사
  • /v-원본에 대한 사본을 확인하려면 이것을 추가하십시오. 느리지 만 편집증의 경우.
  • /h -복사 시스템 및 숨겨진 파일.
  • /k-파일과 함께 읽기 전용 속성을 복사합니다. 그렇지 않으면 모든 파일이 읽기 / 쓰기가됩니다.
  • /x-권한이 필요한 경우 /o또는을 원할 수 있습니다 /x.
  • /y -기존 파일을 덮어 쓰기 전에 확인하지 마십시오.
  • /z-복사에 실패했다고 생각되어 다시 시작하려면 이것을 사용하십시오. 복사 할 때마다 각 파일에 마커를 배치하므로 xcopy 명령을 다시 실행하여 중단 된 위치에서 선택할 수 있습니다.

비정상적인 네트워크 연결을 통해 복사 할 때와 같이 xcopy가 도중에 실패 할 수 있다고 생각하거나 중단하고 나중에 계속하려면을 사용할 수 있습니다 xcopy /s/z c:\source d:\target.

도움이 되었기를 바랍니다.


답변

데이터 백업에서 가장 좋아하는 것은 다음과 같습니다.

ROBOCOPY "C:\folder" "C:\new_folder" /mir

/ mir는 미러 용입니다. / mov를 사용하여 파일을 이동할 수도 있습니다. 정확히 같은 폴더를 재현합니다. 필요에 따라 파일을 삭제 / 덮어 쓸 수 있습니다. 나를 위해 잘 작동합니다. xcopy / copy보다 빠릅니다. Windows에도 내장되어 있습니다.

출처 : http://technet.microsoft.com/en-us/library/cc733145.aspx


답변

명확히하기 위해을 사용할 때 xcopy /s c:\source d:\targetc : \ source 및 d : \ target 주위에 “”를 넣으십시오. 그렇지 않으면 오류가 발생합니다.

즉, 경로에 공백이있는 경우, 즉 다음이있는 경우 :

"C:\Some Folder\*.txt"

다음과 같은 경우에는 필요하지 않습니다.

C:\SomeFolder\*.txt


답변

Windows에서 거의 모든 파일 복사 작업을위한 매우 포괄적 인 솔루션 인 XCopy 또는 RoboCopy 를 살펴볼 수 있습니다 .


답변

‘대상에 파일 이름 또는 디렉토리 이름을 지정하십시오 (F = 파일, D = 디렉토리)? xcopy로 프롬프트하면 다음을 수행 할 수 있습니다 …

echo f | xcopy /f /y srcfile destfile

또는 큰 하위 구조 / 폴더를 복사하는 사람들을 위해 :

둘 이상의 파일을 복사하는 경우 대상이 디렉토리 여야 함을 지정하는 / i 사용


답변

절대 경로를 사용하지 않고 파일을 복사하려면 상대 경로 즉,

경로에 백 슬래시를 쓰는 것을 잊지 마십시오

예 :

    copy children-folder\file.something .\other-children-folder

PS : “일괄 처리 매개 변수”라는 이러한 와일드 카드를 사용하여 절대 경로를 검색 할 수 있습니다.

    @echo off
    echo %%~dp0 is "%~dp0"
    echo %%0 is "%0"
    echo %%~dpnx0 is "%~dpnx0"
    echo %%~f1 is "%~f1"
    echo %%~dp0%%~1 is "%~dp0%~1"

사본에 대한 문서를 확인하십시오 : https://technet.microsoft.com/en-us/library/bb490886.aspx

배치 매개 변수 설명서는
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true


답변

@echo off

rem The * at the end of the destination file is to avoid File/Directory Internal Question.

rem You can do this for each especific file. (Make sure you already have permissions to the path)
xcopy /Y "\\Oldeserver\storage\data\MyFile01.txt" "\\New server\storage\data\MyFile01.txt"*
pause

rem You can use "copy" instead of "xcopy "for this example.