请教DOS命令中判断语句的用法,就是判断bat中前一行执行成功后在执行下一行,失败则执行另一行,或不执行
copyf:\*.baky:(这里可以判断是否要覆盖,然后自动选不覆盖吗)delf:\*.bak(这里需要判断前面复制成功没有)...
copy f:\*.bak y: (这里可以判断是否要覆盖,然后自动选不覆盖吗)
del f:\*.bak (这里需要判断前面复制成功没有) 展开
del f:\*.bak (这里需要判断前面复制成功没有) 展开
2个回答
展开全部
没有自动选不覆盖的简单机制,一般采用只拷贝不存在文件的思路,批处理如下:
@ECHO OFF
SETLOCAL
SET /A ErrCount=0
PUSHD F:\
FOR %%F IN (*.bak) DO (
REM 判断Y:没有这个文件时,才进行拷贝,无需回答是否覆盖的问题
IF NOT EXIST Y:%%F COPY %%F Y:
REM 递增发生错误的次数,一般来说不会出错,但如果Y:空间不足,或者F:某个文件被其它程序独占打开而禁止访问时会发生
IF ERRORLEVEL 1 SET /A ErrCount+=1
)
REM 判断是否没有错误发生过,没有的话,才删除F:的有关文件
IF %ErrCount% EQU 0 DEL *.bak /Q
POPD
ENDLOCAL
@ECHO OFF
SETLOCAL
SET /A ErrCount=0
PUSHD F:\
FOR %%F IN (*.bak) DO (
REM 判断Y:没有这个文件时,才进行拷贝,无需回答是否覆盖的问题
IF NOT EXIST Y:%%F COPY %%F Y:
REM 递增发生错误的次数,一般来说不会出错,但如果Y:空间不足,或者F:某个文件被其它程序独占打开而禁止访问时会发生
IF ERRORLEVEL 1 SET /A ErrCount+=1
)
REM 判断是否没有错误发生过,没有的话,才删除F:的有关文件
IF %ErrCount% EQU 0 DEL *.bak /Q
POPD
ENDLOCAL
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询