dos 高手请进,关于bat中如何使用if 来判断一行命令成功与否后,所执行的分支语句

joe_ljl 2002-12-11 03:02:57
我在写一个bat文件时,遇到这样一个问题:

copy d:\a.exe c:\test\a.exe > cError.txt
if not errorlevel 1 c:\test\a.exe
if errorlevel 1 d:\a.exe
...全文
491 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
joe_ljl 2003-03-07
  • 打赏
  • 举报
回复
谢谢各位了。
wppw2002 2003-02-07
  • 打赏
  • 举报
回复
agree 大雄()
  • 打赏
  • 举报
回复
agree 大雄()
willsort 2003-01-02
  • 打赏
  • 举报
回复
to joe_ljl (若雨):

楼主需要注意,在大部分DOS版本中,其内部命令都是不返回errorlevel的,
也就是说,上面那个例子中,无论是否成功,errorlevel都将为0,都将执行第一个分支.

大雄提出的方案可以解决此问题.另外也可以用find命令检查产生的错误文件,find会返回你所需要的errorlevel。

大雄 2002-12-11
  • 打赏
  • 举报
回复
很久没用了,试试
copy d:\a.exe c:\test\a.exe > cError.txt
if exist c:\test\a.exe c:\test\a.exe
if not exist c:\test\a.exe d:\test\a.exe

或者在每个if 后加一个goto到各个执行文件
joe_ljl 2002-12-11
  • 打赏
  • 举报
回复
我的意思是如果copy成功则执行copy后的程序,职不成功则执行另一个程序.

19,615

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧