Batch file “如何对所有人说不”;是否要覆盖“文件”;批处理文件副本中的提示?

Batch file “如何对所有人说不”;是否要覆盖“文件”;批处理文件副本中的提示?,batch-file,copy,Batch File,Copy,默认情况下,从命令提示符下复制将提示您覆盖目标位置中已存在的文件 您可以添加“/Y”以表示“对所有”替换 但你怎么能对所有人说“不” 换句话说,我想从一个目录中复制目标中已经存在的而不是的所有内容 我看到的最接近的是XCOPY参数,它只复制特定mod datetime之后的内容。我希望它有一个合适的参数 宾果游戏: -Adam根据要复制的文件的大小和数量,您可以先在源目录上复制目标目录,并设置“全部是”,然后再执行您正在执行的原始复制,也可以设置“全部是”。这应该会给你同样的结果。这里有一个解

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

您可以添加“/Y”以表示“对所有”替换

但你怎么能对所有人说“不”

换句话说,我想从一个目录中复制目标中已经存在的而不是的所有内容

我看到的最接近的是XCOPY参数,它只复制特定mod datetime之后的内容。

我希望它有一个合适的参数

宾果游戏:


-Adam

根据要复制的文件的大小和数量,您可以先在源目录上复制目标目录,并设置“全部是”,然后再执行您正在执行的原始复制,也可以设置“全部是”。这应该会给你同样的结果。

这里有一个解决方法。如果要从A复制B中不存在的所有内容,请执行以下操作:

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

除非您不想复制源中自上次复制以来已更改的现有文件,否则为什么不在不指定日期的情况下使用带/d的XCOPY?

我使用带以下参数的
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.

您可以创建一个文本文件,其中只有一行“n”,然后运行命令并在其后放置 或者,您可以按住n键,但这比使用<将其插入所需的时间要长。

这很好

echo "No" | copy/-Y c:\source c:\Dest\
no | cp -rf c:\source c:\Dest\
echo N | copy/-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)

谢谢你。我正在使用命令行实用程序AzCopy(V3.1.0.93)将约100万个文件从本地PC移动到Azure blob存储。我有一些副本,无法照顾副本,以回答每个提示,不想重新上传相同的文件

AzCopy实用程序提供a/Y命令以抑制确认提示,但最终通知它覆盖目标文件。按照这条路线,我可以让它不重新上传文件。然而,这看起来确实有点像黑客,因为它实际上并没有用“否”来回答提示,相反,我得到的错误是“当用户需要在几个给定选项中进行选择时,没有收到任何输入。”但没有上传文件

下面是我使用的命令:echo n|AzCopy/Source:“{file path}”/Dest:{blob storage URL}”/DestKey:{key}

希望这对下一个人有所帮助。

我们通过“调用命令”使用“robocopy”在我们的环境中复制了大量虚拟机。我们发现“机器人复制”有时会出人意料地退出,整个过程会停止。所以我们决定使用“xcopy”。现在我们正在检查它的工作情况,要“创建”“不适用于所有人”选项,我们将使用该函数(powershell):

函数gen_long_no([string]$path){ $result=”“;Get ChildItem$path-Recurse |?{if($.PSIsContainer-eq$false){$result+=“n”}; 返回$result }


也许对某人有帮助。

我知道你们都认为/D:date会使用约会的东西,但只要/D不带:就可以做我们想做的事情,所以

xcopy {Source} {Destination} /E /D 
将在不覆盖的情况下进行复制,以拾取新文件或以前可能因某种原因失败的文件


试试看,它就行了。

为子目录添加开关和验证工作都很好。
echo n | xcopy/-Y/s/e/v c:\source**c:\Dest\

将在目标中给出相同的结果,但会更改源。没错,您的解释更好,我将继续投票;)Sweet:)我喜欢在不安装更多软件的情况下就可以解决问题:)+1代表lolfactor。还有+1,因为这比Liam的解决方案更有效,Liam的解决方案是如何得到+3的……也许我应该指定我使用的是Windows。这是你的第一个错误。;)令人惊讶的是,它适用于所有文件。。您可以执行echo n而不是echo“No”。echo n | copy/-Y*.txt df不起作用(win 10,cmd)也不使用copy不使用xcopy实际上,您必须去掉引号才能完全“复制兼容”。也就是说,如果你用“是”代替“否”,它仍然不会复制。这只适用于一次确认,不适用于多个。太复杂了。。。我们的测试表明,xcopy通过“调用命令”工作得很好,在复制大量虚拟机时不会出错,而不是复制robocopy。我真的建议你们不要在这样的操作中使用robocopy。不,伙计们,invoke命令似乎是错误的。最近,它在执行远程xcopy命令时也发生了变化。似乎当您从另一个脚本运行以下命令时:invoke命令-computername bla bla-scriptblock{xcopy src dst},即使xcopy complete successfully/d是部署脚本中的救星,第二个脚本也可能挂起,特别是当它跳过重新部署未更改的DLL时,这将导致IIS中不必要的应用程序池刷新。谢谢!我一直在拼命想办法解决这个问题。您可能认为该实用程序将在给定a/N选项的情况下继续运行,而不是抑制所有消息(/Y),但这很好地完成了这项工作。就像你提到的,这有点像黑客,因为它说有一个“错误”,但它完成了任务。“echo Y | copy$(SolutionDir)SomeDir$(OutDir)”->为我复制,并在覆盖提示中输入Y。
xcopy {Source} {Destination} /E /D