Если не существует, выйдите + cmd

я пытаюсь сделать цикл в файле .cmd.

Если test.txt не существует, я убью процесс cmd.

@echo off
if not exists test.txt goto exit

Но этот код не работает, и я не знаю, как сделать цикл каждые 2 секунды.

Спасибо за помощь.


person Sebastian    schedule 22.06.2010    source источник


Ответы (4)


Команда называется exist, а не существует:

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

О вашем цикле:
я не уверен на 100%, но думаю, что в Windows нет команд sleep или wait. Вы можете поискать в Google sleep какое-нибудь бесплатное ПО. Другая возможность — использовать ping:

ping localhost -n 3 >NUL

EDIT:
Инструменты набора ресурсов Windows Server 2003 содержат сон.
См. здесь для получения дополнительной информации, а также

person tanascius    schedule 22.06.2010

Если вам нужно подождать несколько секунд, используйте стандартную команду 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
person Livi    schedule 29.03.2014
comment
есть также команда timeout. Но и choice, и timeout доступны не во всех версиях windows. Ping есть. - person Stephan; 29.03.2014

exit — это ключевое слово в DOS/командной строке, поэтому goto exit не работает.

Использование выхода «имя файла», если оно не существует, выводит вас из этого пакетного файла. Это нормально, если вы хотите выйти из пакетного файла.

Если вы хотите выполнить некоторые другие инструкции перед выходом, измените метку на что-то вроде :notfound, тогда вы можете перейти к notfound и выполнить некоторые другие инструкции перед выходом.

(это просто пояснение к одному из примеров)

person Bryan    schedule 04.06.2015

Используя следующее:

if not exist "file name" goto exit

Результат:

The system cannot find the batch label specified - exit

Однако использование той же команды без «goto» работает следующим образом:

if not exist "file name" exit
person Reado    schedule 01.04.2015