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

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

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

@echo off
if not exists test.txt goto exit

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

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

4 ответов


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

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

о своем цикле:
Я не уверен на 100%, но я думаю, что нет сон или ждать команда в Windows. Вы можете google для сон чтобы найти некоторые бесплатные программы. Другая возможность-использовать пинг:

ping localhost -n 3 >NUL

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


Если вам нужно подождать несколько секунд, используйте standard выбор. Этот пример кода проверяет, существует ли файл каждые две секунды. Цикл заканчивается, если файл существует:

@ECHO OFF    
:CHECKANDWAITLABEL
IF EXIST myfile.txt GOTO ENDLABEL
choice /C YN /N /T 2 /D Y /M "waiting two seconds..."
GOTO CHECKANDWAITLABEL 

:ENDLABEL

exit является ключевым словом в DOS / командной строке - вот почему goto exit не работает.

использование выхода if not exist "file name" выводит вас из этого пакетного файла. Это хорошо, если выход из пакетного файла-это то, что вы хотите.

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

(Это просто уточнение к одному из примеры)


исходя из следующего:

if not exist "file name" goto exit

результаты:

The system cannot find the batch label specified - exit

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

if not exist "file name" exit