Programing

xcopy 파일, 이름 바꾸기,“xxx는 파일 이름을 지정합니까…”메시지를 억제합니다

lottogame 2020. 2. 25. 21:59
반응형

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\" 

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


xcopy src dest /I

REM This assumes dest is a folder and will create it, if it doesnt exists


비슷한 문제가 있었고 주석을 억제하고 다른 대상 파일 이름을 사용하려고했기 때문에 robocopy와 xcopy가 모두 도움이되지 않았습니다. 나는 찾았다

type filename.txt > destfolder\destfilename.txt

내 요구 사항에 따라 작업.


원래 질문으로 돌아 가기 :

 xcopy "bin\development\whee.config.example" "TestConnectionExternal\bin\Debug\whee.config"

두 가지 명령으로 수행 할 수 있습니다.

mkdir "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."
xcopy "bin\development\whee.config.example" "c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

대상 파일의 경로에 "\ .."를 추가하면 대상 디렉토리가없는 경우 작성됩니다. 이 경우

"c:\mybackup\TestConnectionExternal\bin\Debug\"

존재하지 않는 디렉토리의 상위 디렉토리입니다.

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\.."

적어도 WIN7의 경우 mkdir 은 디렉토리를 신경 쓰지 않습니다.

"c:\mybackup\TestConnectionExternal\bin\Debug\whee.config\"

정말 존재합니다.


대상의 존재 여부에 관계없이 파일을 복사하기 위해 대상의 끝에 *가있는 XCOPY 대상의 존재 여부에 관계없이 폴더와 내용을 복사하기위한 대상의 끝에 \가있는 XCOPY

대안 적으로

파일 용 RoboForm 소스 목적지 파일 폴더 용 RoboForm 소스 목적지


또는 robocopy대신에 제안 합니다 . 클라이언트 또는 서버에서 GUI로 또는 명령으로 사용됩니다. 네트워크 일시 정지 허용 및 파일 속성 별 복사시 파일 속성을 무시하도록 선택할 수 있습니다. 오, 그리고 멀티 코어 머신을 지원하므로 파일이 순차적이 아니라 서로 "병렬"로 훨씬 빠르게 복사됩니다. MS TechNet에서 찾을 수 있습니다.copyxcopyrobocopy


파일 만 복사하고 대상에서 이름을 변경하려면 다음을 수행하십시오.

xcopy / f / y "bin \ development \ example.exe" "TestConnectionExternal \ bin \ Debug \ NewName.exe *"

그리고 그것은 잘 작동합니다


큰 파일을 복제하려면 / J 스위치가있는 xopy를 사용하는 것이 좋습니다. 이 경우 파일의 경우 F를, 디렉토리의 경우 D를 파이프하면됩니다. 또한 나중에 참조 할 수 있도록 작업을 어레이에 저장할 수 있습니다. 예를 들면 다음과 같습니다.

$MyScriptBlock = {
    Param ($SOURCE, $DESTINATION) 
    'F' | XCOPY $SOURCE $DESTINATION /J/Y 
    #DESTINATION IS FILE, COPY WITHOUT PROMPT IN DIRECT BUFFER MODE
}
JOBS +=START-JOB -SCRIPTBLOCK $MyScriptBlock -ARGUMENTLIST $SOURCE,$DESTIBNATION
$JOBS | WAIT-JOB | REMOVE-JOB

약간 수정 된 Chand 덕분에 https : //.com/users/3705330/chand


파일을 복사 할 때 xcopy 대신 복사를 사용하십시오.

예 : "bin \ development \ whee.config.example" "TestConnectionExternal \ bin \ Debug \ whee.config"복사


실제로 파일 이름을 변경하지 않기 때문에 대상에서 파일 이름을 가져올 수 있으며 질문이 없습니다.

xcopy bin\development\whee.config.example TestConnectionExternal\bin\Debug\  /Y

이 방법은 대상 디렉토리가 존재하고 소스가 파일 또는 디렉토리 일 수있는 경우에 효과적입니다.


해결 방법, ReName ...을 사용하고 이름을 Cryptic Name으로 지정한 다음 적절한 이름으로 이름을 바꿉니다.

씨:

CD "C : \ Users \ Public \ Documents \ My Web Sites \ AngelFire ~ Zoe \"

XCopy / D / I / V / Y "C : \ Users \ Public \ Documents \ My Web Sites \ HostGator ~ ZoeBeans \ cop.htm"

Ren "cop.htm" "christ-our-passover.htm"


xcopy를 사용하면 단일 파일을 지정된 폴더에 복사하여 대상 이름을 정의 할 수 없습니다. 대상 이름이 필요한 경우 복사하기 전에 이름을 바꾸십시오.

ren "bin \ development \ whee.config.example"whee.config

xcopy / R / Y "bin \ development \ whee.config" "TestConnectionExternal \ bin \ Debug \"


대상 경로의 끝에 별표 (*)를 붙여 D와 F의 분쟁을 건너 뜁니다.

예:

xcopy "compressedOutput.xml" "../../Execute Scripts / APIAutomation / Libraries / rerunlastfailedbuild.xml *" "


항상 파일임을 지정할 수 없습니다. xcopy의 다른 기능이 필요하지 않다면 왜 regular copy?

참고 URL : https://stackoverflow.com/questions/3018289/xcopy-file-rename-suppress-does-xxx-specify-a-file-name-message



반응형