我有一个批量处理网络中某些文件的副本,此副本通过目标文件夹中已存在的最新情况更新以前的文件,但是如果正在使用任何文件,则系统不会显示最后的错误消息仅在您尝试更新文件的时刻。
目前我不想解决正在使用的此文件问题,我只希望命令仅在复制结束时报告,如果更新某个文件时出错。
如果"%errorlevel%" == "0"
我已经把条件放到了最后,但是如果副本中间有错误,这个条件不起作用。
我的命令:
xcopy "C:\origin\." "C:\destination\" /c /d /e /h /i /k /r /y
答案 0 :(得分:2)
我建议您循环浏览文件夹并检查每个文件是否正在使用,然后您可以将该文件的名称写入某种类型的日志,也可以稍后阅读.txt文件以显示无法覆盖。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.highcharts.com/js/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<div class="container">
<div id="gauge1" class="gauge"></div>
</div>
我在StackOverflow找到的这段代码(dbenham值得称赞)可以用来检查文件是否被锁定。将FILE.EXT替换为您的文件名,最好是循环以轻松检查每个文件,如果文件被锁定2>nul (
>>FILE.EXT (call )
) && (echo file is not locked) || (echo file is locked)
文件名为(临时).txt文件并且一旦完成,则循环访问该文本文件列出结果。
另外一个好处是,如果您在尝试覆盖之前检查正在使用的文件,您可以跳过您知道无法写入的文件,从而为每个文件节省一些时间。