如果不存在则退出+ cmd

时间:2010-06-22 08:50:45

标签: cmd dos

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

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

@echo off
if not exists test.txt goto exit

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

感谢您的帮助。

4 个答案:

答案 0 :(得分:15)

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

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

关于你的循环:
我不是百分百肯定,但我认为Windows中没有 sleep wait 命令。您可以谷歌睡眠找到一些免费软件。另一种可能性是使用 ping

ping localhost -n 3 >NUL

编辑:
Windows Server 2003 Resource Kit Tools包含 sleep 有关详细信息,请参阅here

答案 1 :(得分:1)

如果您需要等待几秒钟,请使用标准的 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

答案 2 :(得分:1)

退出是DOS /命令提示符中的关键词 - 这就是为什么要退出 不起作用。

使用,如果不存在"文件名" exit将您从该批处理文件中转储出来。 如果退出批处理文件,这很好,就是你想要的。

如果您想在退出之前执行其他一些说明,请将标签更改为:notfound,然后您可以转到notfound 退出前执行其他一些说明。

(这只是对其中一个例子的澄清)

答案 3 :(得分:0)

使用以下内容:

if not exist "file name" goto exit

结果:

The system cannot find the batch label specified - exit

但是使用相同的命令而不使用" goto"有效,如下:

if not exist "file name" exit
相关问题