Batch file 批处理文件复制问题
我在创建复制文件的批处理文件时遇到问题。有时它说目录存在,有时它说它不能执行循环复制Batch file 批处理文件复制问题,batch-file,file-io,Batch File,File Io,我在创建复制文件的批处理文件时遇到问题。有时它说目录存在,有时它说它不能执行循环复制 @ECHO off ECHO Please use quotes with directories ECHO. IF NOT EXIST Pictures (MD Pictures) > NUL :start SET /P From=Copy from: IF NOT EXIST %From% (ECHO No such directory
@ECHO off
ECHO Please use quotes with directories
ECHO.
IF NOT EXIST Pictures (MD Pictures) > NUL
:start
SET /P From=Copy from:
IF NOT EXIST %From% (ECHO No such directory
ECHO.
goto start)
XCOPY /s %From% Pictures
pause
如果您试图创建一个已经存在的目录,
md
会告诉您。您可以使用
md pictures 2>nul
参数
/s
和xcopy
告诉计算机复制子目录及其内容。所以你会复制一份副本一份副本一份副本。。。。(称为循环拷贝)。要避免这种情况,请不要使用/s
,或者确保目标目录在您要复制的目录树之外。这是另一种方法:xcopy自行创建文件夹,并且目标路径末尾的斜杠阻止它提示您
if exist“folder\”处的斜杠用于检测本地驱动器上的文件夹,而不是文件
Stephan的回答告诉您如何避免循环复制错误
@ECHO off
ECHO Please use quotes with directories
ECHO.
:start
SET /P From=Copy from:
IF exist "%From%\" (
XCOPY /s %From% "Pictures\"
) else (
ECHO No such directory
ECHO.
goto start
)
pause
如何检查目标目录是否在目标目录之外?之前不要检查xcopy
将给出4
的错误级别。在xcopy
行之后执行:if%errorlevel%==4 echo error&goto start