IT Share you

배치 파일 사본의 모든 "덮어 쓰기를 원하십니까"프롬프트에 아니오라고 말하는 방법은 무엇입니까?

shareyou 2021. 1. 9. 10:54
반응형

배치 파일 사본의 모든 "덮어 쓰기를 원하십니까"프롬프트에 아니오라고 말하는 방법은 무엇입니까?


기본적으로 명령 프롬프트에서 복사하면 대상 위치에 이미있는 파일을 덮어 쓰라는 메시지가 표시됩니다.

"/ Y"를 추가하여 "모두 예"교체를 말할 수 있습니다.

하지만 어떻게 "모두 아니오"라고 말할 수 있습니까?

즉, 대상에 아직 존재 하지 않는 하나의 디렉토리에서 모든 것을 복사하고 싶습니다 .

내가 보는 가장 가까운 것은 특정 mod-datetime 이후에만 복사하는 XCOPY 인수입니다.


마지막 복사 이후 변경된 소스의 기존 파일을 복사 하지 않으려 는 시나리오가 없는 한 날짜를 지정하지 않고 / D와 함께 XCOPY를 사용하지 않는 이유는 무엇입니까?


echo "No" | copy/-Y c:\source c:\Dest\

"n"이라는 한 줄로 된 텍스트 파일을 만든 다음 명령을 실행하고 그 뒤에 <nc.txt를 입력 할 수 있습니다. "덮어 쓰지 않음"이 내가 원했던 145,000 개 이상의 인스턴스를 복사하기 위해이 작업을 수행했으며 이러한 방식으로 제대로 작동했습니다.

또는 n 키를 누르고있을 수 있지만 <를 사용하여 파이프하는 것보다 시간이 더 걸립니다.


해결 방법은 다음과 같습니다. B에 아직없는 A의 모든 것을 복사하려면 다음을 수행하십시오.

A를 새 디렉터리에 복사합니다. C. B를 C에 복사하고 A와 겹치는 부분을 덮어 씁니다. C를 B에 복사합니다.


XCOPY.NET 어셈블리를 복사하기 위해 다음 매개 변수를 사용 합니다.

/D /Y /R /H 

/D:m-d-y - Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time.

/Y - Suppresses prompting to confirm you want to overwrite an existing destination file.

/R - Overwrites read-only files.

/H - Copies hidden and system files also.

/ D : date는 date 항목을 사용할 것이라고 생각하지만 / D : 없이는 우리가 원하는대로 정확히 수행합니다.

xcopy {Source} {Destination} /E /D 

덮어 쓰지 않고 복사하여 새 파일이거나 어떤 이유로 이전에 실패했을 수있는 파일을 선택합니다.

시도해보세요. 작동합니다.


xxcopy 에 이에 대한 옵션 이있을 것으로 예상 합니다.

빙고:

http://www.xxcopy.com/xxcopy27.htm#tag_231

2.3   By comparison with the file in destination

    The switches in this group select files based on the
    comparison between the files in the source and those in
    the destination.  They are often used for periodic backup
    and directory synchronization purposes. These switches
    were originally created as variations of directory backup.
    They are also convenient for selecting files for deletion.

2.3.1  by Presence/Absence

    The /BB and /U switches are the two switches which select
    files by the pure presence or absence as the criteria.
    Other switches in the this group (Group 2.3) are also
    affected by the file in the destination, but for a
    particular characteristics for comparison's sake.

    /BB  Selects files that are present in source but not in destination.
    /U   Selects files that are present in both source and destination.

-아담


이것은 잘 작동합니다

no | cp -rf c:\source c:\Dest\

에코 N | 복사 / -y $ (SolutionDir) SomeDir $ (OutDir)


이 시도:

robocopy "source" "destination" /e /b /copyall /xo /it

해당 줄을 메모장에 복사하고 .bat 파일로 저장합니다. 파일을 실행하면 소스에서 대상으로 모든 것을 복사합니다. 다시 실행하면 동일한 파일을 대체하지 않습니다. 변경하거나 파일이 변경되면 대상의 파일을 대체합니다.

그것을 테스트하십시오. 몇 가지 작업으로 .txt 파일을 만들고 스크립트를 실행하고 .txt 파일의 문구를 변경하고 스크립트를 다시 실행하면 소스의 변경 파일 만 대체됩니다.

/e=Copies subdirectories. Note that this option includes empty directories
/b=Copies files in Backup mode
/copyall=Copies all file information
/xo=Excludes older files. (this is what prevents it from copy the same file over and over)
/it=Includes "tweaked" files. (this will allow the copy and replace of modified files)

Thanks for this. I am using the command line utility AzCopy (v 3.1.0.93) to move ~1 million files from my local PC to my Azure blob storage. I've got some duplicates and cannot babysit the copy to answer each prompt and don't want to re-upload the same file.

The AzCopy utility offers a /Y command to suppress the confirmation prompts but ends up telling it to overwrite the destination file. Going this route I was able to get it to NOT re-upload the file. However, it does seem like a bit of a hack since it is not actually answering the prompt with "No", instead I get the error "No input is received when user needed to make a choice among several given options." but does not upload the file.

Here is the command I used: echo n | AzCopy /Source:"{file path}" /Dest:"{blob storage URL}" /DestKey:{key}

Hope this helps the next guy.


Depending on the size and number of files being copied, you could copy the destination directory over the source first with "yes to all", then do the original copy you were doing, also with "yes to all" set. That should give you the same results.


We used "robocopy" through "invoke-command" to copy a huge amount of VMs in our environment. We've discovered that "robocopy" unexpectedly exits sometimes and the whole proccess goes to down. So we've decided to use "xcopy". Now we're checking it's work and to "create" "Not for all" option we use that function (powershell):

function gen_long_no([string]$path) { $result = ""; Get-ChildItem $path -Recurse | ? { if ($_.PSIsContainer -eq $false) { $result += "n" } }; return $result }

Maybe helps somebody.


Adding the switches for subdirectories and verification work just fine. echo n | xcopy/-Y/s/e/v c:\source*.* c:\Dest\

ReferenceURL : https://stackoverflow.com/questions/191209/how-to-say-no-to-all-do-you-want-to-overwrite-prompts-in-a-batch-file-copy

반응형