bat复制文件的时候如果找不到文件怎样终止操作?

我写了一个BAT复制文件的批处理,但是我如果复制的某个文件不存在的话BAT会提示找不到该文件,但是会继续运行。 我想知道如果复制的所有文件中如有一个文件不存在将会终止BAT的操作,这个该怎么写?

如果被复制的文件较多,就保存到一个文本文件(如LIST.txt)中,一个文件名占一行,(如果文件较少,就直接写到批处理 里面。)

先判断每一个文件是否存在,如果有任意一个文件不存在,就不复制,退出。如果全部存在,就复制:
@echo off
for /f "delims=" %%a in (LIST.txt) do (if not exist "%%a" echo 找不到文件 "%%a".... & echo. & goto END)
md c:\aaa
for /f "delims=" %%a in (LIST.txt) do copy "%%a" c:\aaa
:END
pause

如果不需判断全部文件是否存在,先复制,遇到有文件不存在才退出,就需要稍稍修改一下。

@echo off
for /f "delims=" %%a in (LIST.txt) do (
if not exist "%%a" echo 找不到文件 "%%a".... & echo. & goto END
copy "%%a" c:\aaa)
:END
pause追问

大哥,你给我讲解一下。

这个是复制的代码
@copy 软件\目录 指定目录\
上面是复制文件夹下的所有文件,里面有很多文件,什么格式的也有。一个一个的判断是不是太麻烦了?

追答

“@copy 软件\目录 指定目录\” 这个是复制所有文件,那么你说的“如有一个文件不存在将会终止BAT的操作”是怎么回事?

追问

说的也是,我糊涂了。。

谢谢你了啊,大哥。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-08
@echo off
set /p input=请输入要复制的文件(支持拖入):
if not exist %input% echo 您所要复制的文件不存在!&pause>nul
相似回答