2010-06-22 66 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,然後在退出之前可以找不到 並執行其他一些指令。

(這只是一個澄清的一個例子)