2009-07-28 6 views
0

je crée un fichier de commandes et juste une petite chose que je veux savoir:Trouvez et vérifier si écriture négative

mon fichier batch (Windows) doit rechercher « bonjour » dans un fichier texte.

S'il existe, il doit utiliser la commande GOTO ailleurs dans le fichier de commandes.

Si ce n'est pas le cas, il faut écrire 'bonjour' sur une nouvelle ligne.

Comment pouvez-vous faire cela?

Je sais que vous pouvez utiliser FIND et ERRORLEVEL, mais je ne sais pas comment.

+0

Quel type de fichier batch - pour Windows ou pour bash ou pour quoi? – sharptooth

+0

bash n'a pas de GOTO –

+0

Bash n'a pas de fichiers batch, c'est un script shell. Et c'est un langage de script complet. – ewanm89

Répondre

1

Si vous utilisez des fichiers batch Windows, vérifiez si vous pouvez utiliser des aides telles que Unxtools. Ils ajoutent beaucoup de fonctionnalités.
Ensuite, vous pouvez utiliser un grep et vérifiez la errorlevel (valeur de retour) ...

EDIT:
Voici un code pour vous donner une idée:

find /i /c "hello" file.txt 
if %errorlevel% equ 0 goto :found 
echo hello 
+0

Je ne pense pas que vous avez besoin d'unxtools, je pense que vous pouvez utiliser la commande FIND, mais je ne suis pas sûr. Et s'il vous plaît donnez le code. –

+0

Vous n'en avez pas besoin - mais je vous recommande de les regarder! – tanascius

+0

Que feriez-vous si% errorlevel% ... faire? Va-t-il GOTO s'il est trouvé? –

0

Cela peut ne pas être la réponse la plus utile ... mais, doit-il être un fichier batch? Il semble que Perl pourrait mieux convenir à ce que vous essayez de faire.

+0

nah, je pense que ce n'est pas nécessaire. Je pensais que vous pourriez utiliser quelque chose avec FIND et ERRORLEVEL, mais je ne sais pas comment. –

0

Essayez celui

echo off 
find /c "hello" myfile.txt > nul 
if errorlevel 1 goto notfound 
echo hello 
:notfound 
+0

non, je ne veux pas le faire comme ça, s'il est trouvé, que d'utiliser GOTO. s'il n'est pas trouvé, qu'il doit l'écrire dans le fichier texte sur une nouvelle ligne. –

+0

Allez ... il vous a donné une solution, vous pouvez le personnaliser comme vous le souhaitez ... Je ne pense pas que vous pouvez vous attendre à ce que d'autres personnes écrivent votre code. Jetez un oeil à http://www.allenware.com/icsw/icsw070.htm pour ajouter du texte à un fichier. – fresskoma

Questions connexes