繁体   English   中英

在“IF EXIST”中,等待两个小时然后退出

[英]Within an “IF EXIST”, wait two hours then quit

好的,明天。

我在这里的第一个问题,但我一直关注这个网站很长一段时间。 事实上,到目前为止,它帮助我创建了大约三十个(虽然更简单)的批处理文件! 我终于难以找到答案了。 请原谅我,如果它已被覆盖,但我找到的任何内容都不适合我的申请。

这是我正在使用的代码。 该过程如下。 如果file.zip存在,请转到unzip命令; 否则,等五分钟再检查一下。 这将持续循环,直到找到文件。

:checkexist
IF EXIST "\\server\folder\subfolder\file.zip" (
GOTO zipexist
) ELSE (
ECHO.
ECHO File not found. Lets wait, say, 5 minutes ...
ECHO.
TIMEOUT /t 300 /nobreak
GOTO checkexist
)

:zipexist
ECHO.
ECHO Unzipping will begin in 30 seconds.

代码继续。

实际上它很漂亮。 我遇到的问题是文件是否永远不存在 - 例如它是否从未上传过,例如当天没有文件。 我尝试过使用SLEEP命令的一些选项,并使用我在MS TechNet上找到的有关SET DELAY=nn ,但没有用。 我想找到一个包装(?)这个如果单纯/ else语句,将只允许它nn分钟运行,如果没有file.zip被发现,终止该批处理文件。 这最终将在服务器端进程上运行,因此没有用户可以进行判断调用。

有关如何以同样简单的方式完成此任务的任何建议吗? 我意识到有很多选择,但有时语法会让我困惑; 我还在学习。

请原谅这篇帖子后面的任何愚蠢问题! :)我到了那里,对不起,我有点慢。

这实现了建议,但说明了检查文件的不同方法,并在循环执行24次= 2小时后继续

set num=0
:checkexist
IF NOT EXIST "\\server\folder\subfolder\file.zip" if %num% LEQ 24 (
ECHO.
ECHO File not found. waiting 5 minutes ... times (%num%^)
ECHO.
TIMEOUT /t 300 /nobreak
set /a num+=1
GOTO checkexist
)

:zipexist
ECHO.
ECHO Unzipping will begin in 30 seconds.

尝试在IF语句之外放置一个计数器,并在循环中递增它。 一旦计数器成为您的限制,然后退出。

很抱歉没有提供代码示例,批量脚本很久以前对我来说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM