Board logo

标题: [其他] 判断文件是否存在的批处理错在哪里? [打印本页]

作者: 新硕    时间: 2008-8-18 15:52     标题: 判断文件是否存在的批处理错在哪里?

我是新手 做了个练习 但无法执行 帮忙看看啦 错在哪
@echo off
if exist d:\zz (
echo 文件存在,是否打开?
set /p var="y是 n否"
if %var%==y start d:\zz&exit
echo 再见
pause&exit
)else(
echo 文件不存在,是否创建?
set /p var="y是 n否"
if %var%==y md d:\zz&goto next
echo 再见
pause&exit
:next
echo 文件已创建,是否打开?
set /p var="y是 n否"
if %var%==y start d:\zz&exit
echo 再见
pause
)
谢谢啦
作者: wangwei4106    时间: 2008-8-18 15:58

goto :
要用啊
   不然就出错了!
作者: 新硕    时间: 2008-8-18 16:00

啊 不明白啊 能不能说的详细点啊
作者: pusofalse    时间: 2008-8-18 16:45

除非是goto :eof,在别的地方goto 标签前不用加:吧。
你的出错应该是没有开启变量延迟。
  1. @echo off&setlocal enabledelayedexpansion
  2. if exist d:\zz (
  3. echo 文件存在,是否打开?
  4. set /p var="y是 n否"
  5. if !var!==y start d:\zz&exit
  6. echo 再见
  7. pause&exit
  8. ) else (
  9. ...
  10. ...
复制代码
其他同是,if里面的%var%改为!var!

)else(    改为) else (
变量延迟:http://www.cn-dos.net/forum/viewthread.php?tid=20733

[ 本帖最后由 pusofalse 于 2008-8-18 16:52 编辑 ]
作者: 新硕    时间: 2008-8-18 16:59

主要是那个 “ )else(  ”要加空格  “ ) else (    ”
谢谢啦
作者: Batcher    时间: 2008-8-18 19:18     标题: 回复 4楼 的帖子

根据前人的讨论结果,goto后面的标签最好加:
作者: pusofalse    时间: 2008-8-18 23:02     标题: 回复 6楼 的帖子

原来如此。BATMAN兄以前告诉过我goto后面的标签不要加:,所以之后我才没加的。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2