我需要我的程序运行:
xcopy s:\* z:\ /E
当 xcopy 运行时,它会提示是否需要覆盖文件,因此我希望批处理文件在所有情况下都对提示回答 no。
我怎样才能做到这一点?
我需要我的程序运行:
xcopy s:\* z:\ /E
当 xcopy 运行时,它会提示是否需要覆盖文件,因此我希望批处理文件在所有情况下都对提示回答 no。
我怎样才能做到这一点?
我自己在开关中几乎忽略了这一点。专家交流文章帮助了我。
这是意义的开关:
/D:mdy 复制在指定日期或之后更改的文件。如果未指定日期,则仅复制源时间比目标时间新的文件。
“如果没有给出日期”部分特别重要。这并不能完全回答“不覆盖现有文件”的问题,但如果源文件的现有文件的时间戳不比目标文件新,它确实回答了这个问题。
足够接近政府工作。
多年来,我一直在使用以下标志。它似乎完成了您在问题中描述的所有行为。
xcopy s:\ z:\ /S /Y /D
S 将复制其中的所有子文件夹和文件 Y 防止任何覆盖提示 D 基本上复制比目标中已有内容更新的任何内容
xcopy 无法配置为跳过现有文件,因此您应该使用“robocopy”进行复制。
这对我有用:
echo n|xcopy s:\* z:\ /E
为避免出现 y/n/all 问题,您可以使用 echo 命令模拟“输入”: echo n|xcopy blabla ... 但这是不正确的,因为任何不同的问题也会回答“n”。
在 cmd 中替换 xcopy 的更好选择是:robocopy source: destination: /e [/zb]
在图形模式下,有一个名为“Teracopy”(使用谷歌找到它)的应用程序,它使用我想要的几个选项(暂停、忽略 [全部]、覆盖 [全部]、最小化、...)覆盖 Windows 资源管理器副本推荐。
Windows 命令解释器:
for /f "delims=" %i in ('dir /b /s "source"') do (echo n | xcopy "%i" "destination" [switches] /-y)
窗口批处理:
for /f "delims=" %%i in ('dir /b /s "source"') do (echo n | xcopy "%%i" "destination" [switches] /-y)
请记住在开始复制/覆盖任何文件之前确保它提示您。