2010-06-22 26 views
9

intenté crear un bucle en un archivo .cmd.Si no existe, salga + cmd

Si test.txt no existe, entonces mataré el proceso de cmd.

@echo off 
if not exists test.txt goto exit 

Pero este código no funciona y no sé cómo hacer un bucle cada 2 segundos.

Gracias por la ayuda.

Respuesta

14

El comando se llama exist, no existe:

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

Sobre su bucle:
no estoy 100% seguro, pero creo que no hay sueño o esperar mando en Windows. Puede buscar en google sleep para encontrar algunos freeware. Otra posibilidad es utilizar una mesa de ping :

ping localhost -n 3 >NUL 

EDIT:
El Windows Server 2003 Resource Kit Tools contiene una sueño.
Ver here para obtener más información, también

+0

muchas gracias ... mutch gran ayuda :-) – Sebastian

1

Si es necesario esperar algunos segundos uso estándar ELECCIÓN comando. Este código de muestra comprueba si el archivo existe cada dos segundos. El bucle termina si el archivo existe:

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

:ENDLABEL 
+0

también hay un comando 'timeout'. Pero tanto 'choice' como' timeout' no están disponibles en todas las versiones de Windows. 'Ping' es. – Stephan

0

Utilizando los siguientes:

if not exist "file name" goto exit 

Resultados en:

The system cannot find the batch label specified - exit 

Sin embargo, utilizando el mismo comando sin "Goto" obras, de la siguiente manera:

if not exist "file name" exit 
1

salir es a ke y word en DOS/Símbolo del sistema: por eso la salida de goto no funciona.

Usar si no existe el "nombre de archivo", la salida lo vaciará fuera de ese archivo por lotes. Eso está bien si sale del archivo por lotes es lo que quiere.

Si desea ejecutar otras instrucciones antes de salir, cambie la etiqueta a algo así como: not found then puede ir a not found y ejecutar algunas otras instrucciones antes de salir.

(esto es sólo una aclaración a uno de los ejemplos)