2010-06-22 69 views
9

我尝试在.cmd文件中创建一个循环。如果不存在,则退出+ cmd

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

@echo off 
if not exists test.txt goto exit 

但此代码不起作用,我不知道如何每2秒做一个循环。

感谢您的帮助。

回答

14

的命令被称为exist,不存在

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

关于你的循环:
我不是100%肯定,但我认为没有睡眠等待在命令视窗。你可以谷歌找到一些免费软件。另一种可能性是使用

ping localhost -n 3 >NUL 

编辑:
Windows Server 2003 Resource Kit Tools包含睡眠
更多信息,请参阅here,太

+0

感谢非常mutch ...很大的帮助:-) – Sebastian 2010-06-22 09:11:45

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 
+0

也有一个'timeout'命令。但是'choice'和'timeout'在所有windows版本中都不可用。 “Ping”是。 – Stephan 2014-03-29 15:38:16

0

使用下列内容:在

if not exist "file name" goto exit 

结果:

The system cannot find the batch label specified - exit 

但是使用相同的命令没有 “转到” 的作品,具体如下:

if not exist "file name" exit 
1

exit is a ke y字在DOS /命令提示符 - 这就是为什么转到出口 不起作用。

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

如果您希望在退出之前执行其他一些指令,请将标签更改为:notfound,然后在退出之前可以找不到 并执行其他一些指令。

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