使用Windows批处理命令循环直到文件存在

Mih*_*hir 7 command file batch-file line while-loop

如何将以下代码转换为Windows批处理命令?

这是一个perl脚本,它在while循环中搜索文件,如果发现它退出.

use strict;
use warnings;
my $filename = 'something.txt'; 
while (1) {

if (-e $filename) {
print "File Exists!";
   exit;
   }

}
Run Code Online (Sandbox Code Playgroud)

Jas*_*ner 19

这是一个相当直接的翻译.代码应该是不言自明的:

@ECHO OFF
SET LookForFile="C:\Path\To\File.txt"

:CheckForFile
IF EXIST %LookForFile% GOTO FoundIt

REM If we get here, the file is not found.

REM Wait 60 seconds and then recheck.
REM If no delay is needed, comment/remove the timeout line.
TIMEOUT /T 60 >nul

GOTO CheckForFile


:FoundIt
ECHO Found: %LookForFile%
Run Code Online (Sandbox Code Playgroud)

  • 如果我是你,我不会删除那个超时.减少它 - 比如1秒,但不能将其删除.如果你删除它,`CMD`将进入一个硬循环,绝对**吃**CPU. (3认同)
  • IF EXIST缺少`%`.OP原始代码没有延迟,为什么你呢?如果你确实使用TIMEOUT引入延迟,那么你应该将stdout重定向到nul并使用/ NOBREAK选项. (2认同)