2010-06-22 14 views
9

Je tente de créer une boucle dans un fichier .cmd.S'il n'existe pas, quittez + cmd

Si test.txt n'existe pas alors je vais tuer le processus cmd.

@echo off 
if not exists test.txt goto exit 

Mais ce code ne fonctionne pas et je ne sais pas comment faire une boucle toutes les 2 secondes.

Merci pour votre aide.

Répondre

14

La commande est appelée exist, ne existe:

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

À propos de votre boucle:
Je ne suis pas sûr à 100%, mais je pense qu'il n'y a pas sommeil ou commande wait en Les fenêtres. Vous pouvez google pour dormir pour trouver un logiciel gratuit. Une autre possibilité est d'utiliser un ping:

ping localhost -n 3 >NUL 

EDIT:
Le Windows Server 2003 Resource Kit Tools contient un sommeil.
Voir here Pour plus d'informations, trop

+0

merci très Mutch ... grande aide :-) – Sebastian

1

Si vous devez attendre quelques secondes, utilisez commande standard CHOIX. Cet exemple de code vérifie si le fichier existe toutes les deux secondes. La boucle se termine si le fichier 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

il y a aussi une commande 'timeout'. Mais 'choice' et' timeout' ne sont pas disponibles dans toutes les versions de Windows. 'Ping' est. – Stephan

0

En utilisant les suivantes:

if not exist "file name" goto exit 

Résultats dans:

The system cannot find the batch label specified - exit 

Cependant en utilisant la même commande sans "goto" fonctionne comme suit:

if not exist "file name" exit 
1

sortie est une ke y mot dans DOS/Command Prompt - c'est pourquoi goto exit ne fonctionne pas. L'utilisation de l'exit "nom de fichier", s'il n'existe pas, vous permet de quitter ce fichier batch. C'est très bien si la sortie du fichier de commandes est ce que vous voulez.

Si vous souhaitez exécuter d'autres instructions avant de quitter, remplacez l'étiquette par quelque chose comme: notfound alors vous ne pouvez pas trouver et exécuter d'autres instructions avant de quitter.

(ce qui est juste une précision à l'un des exemples)