批量设置复制到 return 错误

Batch set copy to return error

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

没有看到你的代码,我的帮助是有限的,但这应该让你朝着正确的方向前进。

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

If %errorlevel% = 0

如果 %errorlevel% 确实 = 0 则复制已成功完成,否则就是错误。

要查看文件是否存在,请使用:

IF EXIST [filename] [command]

希望对您有所帮助。

据我了解,您想复制文件而不覆盖

您可以使用复制命令的/-Y开关来做到这一点(不会复制子目录中的文件):

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

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


当我 运行 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 ) )