3 votes

Tâche planifiée renvoie une erreur 0xff malgré le succès

J'ai une tâche planifiée qui exécute un fichier batch, et même si je peux voir les résultats de son achèvement réussi, selon le planificateur de tâches, elle échoue avec l'erreur 0xff à chaque fois.

J'ai d'autres fichiers batch planifiés qui se terminent également avec succès et renvoient 0x0 comme ils le devraient. La seule différence que je peux voir entre ces fichiers est que ceux qui fonctionnent se terminent par:

IF ERRORLEVEL 1 (
    (script "me notifier" ici)
)

tandis que celui qui est défectueux se termine par :

IF %2==quelque chose (
    (exécuter un programme ici)
    IF ERRORLEVEL 1 (
        (même script "me notifier" ici)
    )
)

Est-ce qu'un bloc IF renvoie 0xff s'il est faux ou quelque chose d'autre? Quel est le problème?

7voto

Evan Anderson Points 140581

La syntaxe que vous recherchez est :

IF "%2"=="SOMETHING" (

Quand %2 est vide, la ligne que vous avez devient :

IF ==SOMETHING (

C'est une syntaxe invalide. Mettre les guillemets le rend :

IF ""=="SOMETHING" (

C'est valide.

0 votes

N'oubliez pas! exit 0xFF signifie "erreur de syntaxe dans le fichier batch"!

0voto

Frank Points 269

Après quelques tests, j'ai découvert que les blocs IF sont corrects, ils ne semblent pas modifier le niveau d'erreur, mais ce qui posait problème était le "%2==quelque chose" -- les fois où cela échouait, aucun second paramètre n'était passé au fichier batch. Donc je ne sais pas comment tester "en toute sécurité" si un paramètre existe (c'est-à-dire sans que cela génère une erreur 0xff lorsqu'il n'est pas présent) sauf peut-être en ajoutant un autre IF ERRORLEVEL après cela. Mais de toute façon, j'ai simplement modifié la tâche planifiée pour qu'elle ait toujours un second paramètre (que ce soit "quelque chose" ou non) et il semble maintenant retourner 0x0 comme il se doit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X