J'utilise 7-zip (dans mes fichiers de commandes) pour créer un répertoire et envoyer les archives par courrier électronique. Lorsque j'utilise un fichier dans ce répertoire en même temps que le fichier de commandes est en cours d'exécution (je démarre les fichiers de commandes avec le planificateur de tâches), des messages d'avertissement sont en cours de traitement. Après cela, lorsque l'archive est prête, 7-zip affiche le message suivant: "AVERTISSEMENT: impossible d'ouvrir 29 fichiers" avant l'envoi du courrier électronique. Lorsque cela se produit, je souhaite pouvoir définir une variable d'environnement (quelque chose comme %MESSAGE%
) avec la valeur "29 avertissements en cours" et mettre ce message dans l'objet de l'e-mail. Mais tout ce qui peut être fait pour le moment est d’utiliser la %ERRORLEVEL%
variable. Si je ne peux pas définir de %MESSAGE%
variable, est-il possible d'écrire des messages d'avertissement dans un fichier, puis d'analyser ce fichier pour extraire la dernière ligne?
la source
>xxx.log 2>&1
est-ce que j'ai presque besoin. presque - parce que le fichier journal sera tellement gros ... j'ai tellement de fichiers dans mes archives, plus de 100k ... mais c'est une bonne idée, jell trying to use it for brainstorm tomorrow =) can you spell out what is it -
2> & 1` je net understand it fully? how it work? by the way, i
m pas utiliser 7z.exe à la place de 7za, mais c'est le cas peu importe, je ne vois pas de différence entre ces programmes>Log.txt 2>&1
redirige les flux de sortie standard (= 1) et d'erreur standard (= 2) vers Log.txt (voir ici pour plus d'informations). De plus, je suppose que vous pouvez également utiliser 7z.exe, juste que je préfère 7za.exe lorsque je l'utilise uniquement à partir de la ligne de commande.7-Zip écrit tous ses messages sur stdout, y compris les messages d'erreur et d'avertissement. Cela signifie que vous pouvez collecter tous les résultats en le redirigeant vers un fichier. Cela peut être fait en ajoutant
>output_filename
à la ligne de commande après tous les arguments que vous passez à 7-Zip. Par exemple:Après cela, vous devriez pouvoir analyser le fichier de sortie et rechercher les lignes avec "WARNING" ou autre chose dans celles-ci. Vous pouvez le faire de manière conditionnelle en fonction de la valeur de
%ERRORLEVEL%
non différente de zéro, ce qui indique qu'il y a eu un problème, ou spécifiquement de ce1
qui signifie qu'il y a eu des avertissements non fatals.Selon la documentation, ce sont les codes de sortie possibles (
%ERRORLEVEL%
valeurs):la source