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