批处理文件副本中如何对所有“您要覆盖”提示说不?

batch-file copy

111467 观看

15回复

37831 作者的声誉

默认情况下,从命令提示符下进行复制将提示您覆盖目标位置中已经存在的文件。

您可以添加“ / Y”来表示“对所有人都是”替换。

但是你怎么能说“不全”呢?

换句话说,我要复制一切从一个目录,它不是已经在目标存在。

我看到的最接近的东西是XCOPY参数,它仅在特定的mod-datetime之后复制东西。

作者: JosephStyons 的来源 发布者: 2008 年 10 月 10 日

回应 (15)


5

70132 作者的声誉

我希望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.

-亚当

作者: Adam Davis 发布者: 10.10.2008 01:21

2

7563 作者的声誉

根据要复制的文件的大小和数量,您可以先在源上复制目标目录,然后选择“是全部”,然后再进行您要进行的原始复制,同时还要设置“是全部”。那应该给你同样的结果。

作者: tloach 发布者: 10.10.2008 01:23

11

10600 作者的声誉

这是一种解决方法。如果要从A复制所有B中不存在的内容:

将A复制到新目录C。将B复制到C,覆盖与A重叠的所有内容。将C复制到B。

作者: Liam 发布者: 10.10.2008 01:23

70

100191 作者的声誉

决定

除非有一种情况您希望复制源中自上次复制以来已发生更改的现有文件,否则为什么不将XCOPY与/ D一起使用而不指定日期?

作者: Kev 发布者: 10.10.2008 01:33

6

671 作者的声誉

我使用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.
作者: chitza 发布者: 10.10.2008 01:54

21

211 作者的声誉

您可以使用单行“ n”制作一个文本文件,然后运行命令并在其后放置

或者,您可以按住n键不放某些东西,但是比使用<插入它需要更长的时间。

作者: Chris 发布者: 08.01.2010 07:24

29

307 作者的声誉

echo "No" | copy/-Y c:\source c:\Dest\
作者: krishnan 发布者: 16.12.2011 07:47

4

5452 作者的声誉

这很好

no | cp -rf c:\source c:\Dest\
作者: ghostCoder 发布者: 03.05.2012 09:44

4

161 作者的声誉

回声N | 复制/ -y $(SolutionDir)SomeDir $(OutDir)

作者: Lufi 发布者: 18.07.2014 10:32

3

31 作者的声誉

尝试这个:

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)
作者: Jeff Tondreau 发布者: 27.08.2014 01:58

3

436 作者的声誉

谢谢你 我正在使用命令行实用程序AzCopy(v 3.1.0.93)将约100万个文件从本地PC移到Azure Blob存储中。我有一些重复项,不能照看副本以回答每个提示,也不想重新上传相同的文件。

AzCopy实用程序提供了一个/ Y命令来抑制确认提示,但最终告诉其覆盖目标文件。走这条路线,我能够使它不重新上传文件。但是,由于它实际上没有使用“否”回答提示,因此似乎有点hack,而是出现错误“当用户需要在多个给定选项中进行选择时,没有收到输入”。但不上传文件。

这是我使用的命令:echo n | AzCopy / Source:“ {文件路径}” / Dest:“ {blob存储URL}” / DestKey:{key}

希望这对下一个家伙有帮助。

作者: ammills01 发布者: 01.05.2015 12:36

0

70 作者的声誉

我们通过“ invoke-command”使用“ robocopy”来复制环境中的大量VM。我们发现,“ robocopy”有时会意外退出,并且整个过程都会失败。因此,我们决定使用“ xcopy”。现在,我们检查它是否正常工作,并使用该功能(PowerShell)来“创建”“并非所有人”选项:

函数gen_long_no([string] $ path){$ result =“”; Get-ChildItem $ path-递归| ?{如果(($ _。PSIsContainer -eq $ false){$ result + =“ n”}};返回$ result}

也许可以帮助别人。

作者: blinker 发布者: 29.03.2016 08:28

6

61 作者的声誉

我知道你们都认为/ D:date将要使用日期的东西,但是只是/ D而没有the:正是我们想要的...

xcopy {Source} {Destination} /E /D 

将进行复制而不会覆盖,以提取新文件或由于某种原因之前可能失败的文件。

只需尝试一下,它就可以了。

作者: Eddie Middlebrooks 发布者: 07.04.2016 03:39

0

1 作者的声誉

添加用于子目录和验证的开关就可以了。回声n | xcopy / -Y / s / e / vc:\ source *。* c:\ Dest \

作者: John Salter 发布者: 16.11.2018 03:47

0

55 作者的声誉

Windows命令解释器:

for /f "delims=" %i in ('dir /b /s "source\*"') do (echo n | xcopy "%i" "destination"  [switches] /-y)

Windows批处理:

for /f "delims=" %%i in ('dir /b /s "source\*"') do (echo n | xcopy "%%i" "destination"  [switches] /-y)

请记住在开始复制/覆盖任何文件之前确保它提示您。

作者: Arnold Lai 发布者: 05.09.2019 01:05
32x32