【问题标题】:If not exists then exit + cmd如果不存在则 exit + cmd
【发布时间】:2010-06-22 08:50:45
【问题描述】:

我尝试在 .cmd 文件中创建一个循环。

如果 test.txt 不存在,那么我将终止 cmd 进程。

@echo off
if not exists test.txt goto exit

但是这段代码不起作用,我不知道如何每 2 秒循环一次。

感谢您的帮助。

【问题讨论】:

    标签: cmd dos


    【解决方案1】:

    该命令称为exist,而不是存在

    if not exist test.txt goto :exit
    echo file exists
    :exit
    

    关于你的循环:
    我不是 100% 确定,但我认为 Windows 中没有 sleepwait 命令。你可以用谷歌搜索 sleep 来找到一些免费软件。另一种可能性是使用 ping

    ping localhost -n 3 >NUL
    

    编辑:
    Windows Server 2003 Resource Kit Tools 包含一个睡眠
    更多信息请见here

    【讨论】:

      【解决方案2】:

      如果您需要等待几秒钟,请使用标准 CHOICE 命令。此示例代码每两秒检查一次文件是否存在。如果文件存在则循环结束:

      @ECHO OFF    
      :CHECKANDWAITLABEL
      IF EXIST myfile.txt GOTO ENDLABEL
      choice /C YN /N /T 2 /D Y /M "waiting two seconds..."
      GOTO CHECKANDWAITLABEL 
      
      :ENDLABEL
      

      【讨论】:

      • 还有一个timeout 命令。但choicetimeout 并非在所有Windows 版本中都可用。 Ping 是。
      【解决方案3】:

      exit 是 DOS/命令提示符中的关键字 - 这就是 goto exit 的原因 不工作。

      如果不存在“文件名”退出,则使用退出该批处理文件。 如果您想要退出批处理文件,那很好。

      如果您想在退出前执行一些其他指令,请将标签更改为 :notfound 之类的内容,然后您可以转到 notfound 并在退出前执行一些其他指令。

      (这只是对其中一个示例的说明)

      【讨论】:

        【解决方案4】:

        使用以下内容:

        if not exist "file name" goto exit
        

        结果:

        The system cannot find the batch label specified - exit
        

        但是使用不带“goto”的相同命令可以工作,如下所示:

        if not exist "file name" exit
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-15
          • 1970-01-01
          • 2019-08-20
          • 1970-01-01
          • 2015-03-31
          • 2013-05-26
          相关资源
          最近更新 更多