Ton*_*ony 91 windows xcopy batch-file robocopy
我似乎无法在命令行上找到一种方法来说"将目录A中的所有文件复制到目录B,但如果文件已存在于目录B中,请不要覆盖它,无论哪个文件更新,不要催促我."
我经历过复制,移动,xcopy和robocopy,而我能得到的最接近的是你可以告诉robocopy"复制A到B,但不要用旧文件覆盖更新的文件",但这对我不起作用.我查看了xxcopy,但放弃了它,因为我不想对Visual Studio后期构建事件有第三方依赖,这将要求其他SVN用户安装该工具以进行构建.
我想在Visual Studio 2010中的后期构建事件中添加一个命令行,以便从新的EF模型对象的T4模板生成的文件分发到它们所属的项目文件夹,但是为现有对象重新生成文件不要覆盖可能编辑的目标文件.
由于T4模板重新生成,源文件总是更新,我不能可靠地使用"更新"的开关,我不这么认为.
我为那些我可以使用的项目使用了部分类,但是我生成的其他东西不能使用部分类(例如,生成默认的EditorTemplate或DisplayTemplate*.ascx文件).
任何人都有任何类似的问题他们已经解决了?
Dr.*_*ius 188
的Robocopy,或者"强大的文件复制",是一个命令行目录复制命令.它已作为Windows资源工具包的一部分从Windows NT 4.0开始提供,并作为Windows Vista,Windows 7和Windows Server 2008的标准功能引入.
robocopy c:\Sourcepath c:\Destpath /E /XC /XN /XO
Run Code Online (Sandbox Code Playgroud)
详细说明(使用Hydrargyrum,HailGallaxar和Andy Schmidt答案):
/E
使Robocopy以递归方式复制子目录,包括空目录. /XC
排除具有相同时间戳但文件大小不同的现有文件.Robocopy通常会覆盖那些./XN
排除比目标目录中的副本更新的现有文件.Robocopy通常会覆盖那些./XO
排除早于目标目录中副本的现有文件.Robocopy通常会覆盖那些.除了Changed,Older和Newer类之外,Robocopy完全符合原始海报的要求 - 无需加载脚本环境.
参考文献:Technet,Wikipedia
下载来自:Microsoft Download Link (链接最后一次验证,2016年3月30日)
Hyd*_*rum 46
Belisarius的解决方案很好.
详细说明这个稍微简洁的答案:
/E
使Robocopy以递归方式复制子目录,包括空目录. /XC
排除具有相同时间戳但文件大小不同的现有文件.Robocopy通常会覆盖那些./XN
排除比源目录中的副本更新的现有文件.Robocopy通常会覆盖那些./XO
排除早于源目录中副本的现有文件.Robocopy通常会覆盖那些.除了Changed,Older和Newer类之外,Robocopy完全符合原始海报的要求 - 无需加载脚本环境.
sac*_*n11 42
你可以试试这个:
echo n | copy /-y <SOURCE> <DESTINATION>
Run Code Online (Sandbox Code Playgroud)
-y
只需在覆盖之前提示,我们就可以将所有这些问题告诉管理员.所以这实际上只是复制不存在的文件.:)
Stu*_*Stu 36
For %F In ("C:\From\*.*") Do If Not Exist "C:\To\%~nxF" Copy "%F" "C:\To\%~nxF"
Run Code Online (Sandbox Code Playgroud)
这是批处理文件形式:
@echo off
set source=%1
set dest=%2
for %%f in (%source%\*) do if not exist "%dest%\%%~nxf" copy "%%f" "%dest%\%%~nxf"
Run Code Online (Sandbox Code Playgroud)
使用 xcopy 有一种奇怪的方法可以做到这一点:
echo nnnnnnnnnnn | xcopy /-y source target
Run Code Online (Sandbox Code Playgroud)
只需包含与您要复制的文件一样多的 n,它就会回答所有覆盖问题的 n。
归档时间: |
|
查看次数: |
188194 次 |
最近记录: |