[command-line] xcopy 파일, 이름 바꾸기,“xxx는 파일 이름을 지정합니까…”메시지를 표시하지 않습니다.

이것은 매우 간단하고 아마도 적절한 플래그를 간과하고 있지만 한 명령에서 파일을 한 디렉토리에서 다른 디렉토리로 복사하고 대상 디렉토리에서 이름을 바꾸는 방법은 무엇입니까? 내 명령은 다음과 같습니다.

if exist "bin\development\whee.config.example"
  if not exist "TestConnectionExternal\bin\Debug\whee.config"
    xcopy "bin\development\whee.config.example"
          "TestConnectionExternal\bin\Debug\whee.config"

매번 다음과 같은 메시지가 나타납니다.

TestConnectionExternal \ bin \ Debug \ whee.config가 대상에 파일 이름 또는 디렉토리 이름을 지정합니까 (F = 파일, D = 디렉토리)?

이 프롬프트를 표시하지 않습니다. 대답은 항상 F입니다.



답변

를 사용하지 마십시오 xcopy사용하는 copy대신,이 문제가되지 않습니다.

xcopy일반적으로 여러 파일 / 폴더의 재귀 복사본을 수행하거나 제공하는 확인 / 프롬프트 기능이 필요할 때 사용됩니다. 단일 파일 사본의 경우 copy명령이 제대로 작동합니다.


답변

나는 사용한다

echo f | xcopy /f /y srcfile destfile

주위를 돌아 다니다.


답변

다른 옵션은 대상 와일드 카드를 사용하는 것입니다. 소스 및 대상 파일 이름이 동일한 경우에만 작동하므로 OP의 특정 예를 해결하지는 않지만 공유 할 가치가 있다고 생각했습니다.

예를 들면 다음과 같습니다.

xcopy /y "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\*"

파일 또는 디렉토리를 묻지 않고 대상 디렉토리에 “whee.config.example”파일의 사본을 작성합니다.

업데이트 : @chapluck이 언급 한 바와 같이 :

당신은 변경할 수 있습니다 "* ""[newFileName].*". 파일 확장자는 유지되지만 이름을 바꿀 수 있습니다. 또는 더 해키 : "[newFileName].[newExt]*"확장을 변경하려면


답변

XCOPY에는 문서화되지 않은 기능이 있습니다. 당신이 사용할 수있는:

xcopy “bin \ development \ whee.config.example” “c : \ mybackup \ TestConnectionExternal \ bin \ Debug \ whee.config *”

나는 오늘 그것을 테스트했습니다. 🙂


답변

http://technet.microsoft.com/en-us/library/bb491035.aspx 로 이동하십시오.

MAIN ISSUE는 “… 대상이 기존 디렉토리를 포함 하지 않고 백 슬래시로 끝나지 않는 경우입니다. ()로 다음 메시지가 나타납니다. …

대상이 대상에서 파일 이름 또는 디렉토리 이름을 지정합니까 (F = 파일, D = 디렉토리)?

/ i 명령 줄 옵션을 사용하여이 메시지를 표시하지 않을 수 있습니다. 소스가 둘 이상의 파일 또는 디렉토리 인 경우 xcopy는 대상이 디렉토리라고 가정합니다.

시간이 좀 걸렸지 만 RTFM 만 있으면됩니다.


답변

따라서 이에 대한 간단한 수정이 있습니다. 분명히 어색하지만 작동합니다. 새 파일 (파일 이름)이 이미 존재하면 xcopy는 대상이 디렉토리인지 파일인지 묻지 않습니다. xcopy 명령 앞에 새 파일 이름에 대한 간단한 에코를 표시하면 빈 파일을 덮어 씁니다. 예

echo.>newfile.txt
xcopy oldfile.txt newfile.txt /Y


답변

이것은 Bills의 답변입니다.

다른 사람들에게 정말 분명합니다.

당신이 복사하는 경우 ONE 한 장소에서 다른 장소로 파일 사용자가 전체 디렉토리 구조를 생성하려면, 다음 명령을 사용합니다 :

xcopy "C:\Data\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg" "C:\Target Data\\Images\2013\08\12\85e4a707-2672-481b-92fb-67ecff20c96b.jpg\"

예, 파일 이름 끝에 백 슬래시를 넣으면 파일 또는 디렉토리인지 묻지 않습니다. 소스에는 하나의 파일 만 있기 때문에 파일이라고 가정합니다.