如果未复制任何文件,则在副本末尾生成错误

时间:2017-06-08 12:59:56

标签: windows batch-file cmd

我有一个批量处理网络中某些文件的副本,此副本通过目标文件夹中已存在的最新情况更新以前的文件,但是如果正在使用任何文件,则系统不会显示最后的错误消息仅在您尝试更新文件的时刻。

目前我不想解决正在使用的此文件问题,我只希望命令仅在复制结束时报告,如果更新某个文件时出错。

如果"%errorlevel%" == "0"我已经把条件放到了最后,但是如果副本中间有错误,这个条件不起作用。

我的命令:

xcopy "C:\origin\." "C:\destination\" /c /d /e /h /i /k /r /y

1 个答案:

答案 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文件并且一旦完成,则循环访问该文本文件列出结果。

另外一个好处是,如果您在尝试覆盖之前检查正在使用的文件,您可以跳过您知道无法写入的文件,从而为每个文件节省一些时间。