批量设置复制以返回错误

时间:2015-03-26 10:09:23

标签: batch-file cmd

我的批处理/ cmd脚本中使用了复制命令。复制完成后,复制的文件可能已存在于目标中。当这种情况发生时脚本挂起。在这种情况下,我不知道脚本失败了。是否可以强制复制返回而不是复制错误而不是等待回复?

3 个答案:

答案 0 :(得分:1)

据我了解,您希望在不覆盖的情况下复制文件

您可以使用/-Y复制命令切换(不会复制子目录中的文件)来执行此操作:

@echo off
pushd "c:\my_dir"
for %%a in (*) do (
  echo n|copy /-Y "%%~a" "C:\somewhere_else"
) 

echo n|copy /-y不能与通配符一起使用,您应该逐个迭代文件。请注意/-Y是强制性的。

答案 1 :(得分:0)

如果没有看到您的代码,我的帮助就会受到限制,但这应该会让您朝着正确的方向前进。

要查看复制是否有错误,您可以使用:

If %errorlevel% = 0

如果%errorlevel% = 0,那么副本已成功完成,否则会出现错误。

要查看文件是否使用:

IF EXIST [filename] [command]

希望这有帮助。

答案 2 :(得分:0)


当我运行test.bat如果字段我想将一些文件复制到某个位置

if errorlevel 0 ( if NOT EXIST c:\duplicatefile ( echo F | xcopy c:\fileyouwant s:\newnameifyouwant ) )

我的例子

start c:\test.bat 
if errorlevel 0 ( if NOT EXIST c:\soheil.txt ( echo F | xcopy s:
\soheil.txt c:\soheil.txt ) )