我尝试在.cmd文件中创建一个循环。
如果test.txt不存在,那么我将终止cmd进程。
@echo off
if not exists test.txt goto exit
但是这段代码不起作用,我不知道如何每2秒做一次循环。
感谢您的帮助。
答案 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