none
Développement d'un programme autonome RRS feed

  • Question

  • Bonjour tout le monde,

    Je développe en C# depuis dix ans, mais j'ai l'impression que ça ne va pas m'aider pour le besoin que je vais présenter. Avoir pratiqué VB6 et C peut-être plus. L'assembleur peut-être aussi mais peut-être n'y aura-t-il pas besoin d'aller jusque là.

    J'ai écrit un batch de sauvegarde à lancer sous Macrium, le programme de sauvegarde d'image de disque, qui fournit une fenêtre de lignes de commandes. Le but est de sauvegarder les fichiers de données utilisateurs avant de les écraser en restaurant une image du disque.

    On ne dispose pas de .Net dans ce contexte. Pour la sauvegarde elle-même ça ne pose pas de problème, elle est faite avec XCOPY. Mais pour gérer les erreurs, c'est un peu plus délicat.

    Par défaut, XCOPY affiche le chemin de chaque fichier copié, et en cas d'erreur, l'affiche juste après sur la sortie d'erreur. Tel quel, si une ligne d'erreur apparaît à la troisième ligne parmi 4627, hum, comment dire ... la proportion de la population capable de dire à la fin quelle était l'erreur et sur quel fichier elle portait ne va pas être très élevée.

    Si on veut afficher toutes les erreurs à la fin, on va lancer

    BATCHCOPIE 2>fichiererreurs.txt

    et à la fin

    TYPE fichiererreurs.txt

    ce qui va donner :

    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.
    Copie impossible : le fichier ne peut pas être lu.

    Trèèèèèès utile.

    J'aurais donc besoin d'écrire un programme qui va recevoir la sortie standard et la sortie d'erreur, afficher la sortie standard à l'écran, et quand une ligne apparaît en sortie d'erreur, l'afficher en rouge à l'écran, et enregistrer dans un fichier d'erreur la dernière ligne de la sortie standard, et la dernière ligne de la sortie d'erreur.

    La contrainte étant donc, comme je le disais, que je n'ai pas droit à .Net

    J'ai lu ici :

    https://docs.microsoft.com/en-us/cpp/build/walkthrough-compile-a-c-program-on-the-command-line?view=vs-2019

    que Visual Studio permet de compiler un programme C. Pour le moment j'ai Visual Studio 2017 Community, si des fois c'est possible avec je peux peut-être épargner le temps et le trafic réseau de la mise à jour. Ensuite je vois qu'il faut télécharger le command-line toolset.

    Si quelqu'un connaît un tant soit peu ces outils, peut-être pourra-t-il me confirmer si c'est adapté à ce que je veux faire, ou au contraire m'avertir si je me fourvoie complètement, ce qui peut être appréciable car il me semble que ce n'est pas l'affaire de cinq minutes.


    • Modifié Gloops dimanche 19 mai 2019 00:56
    dimanche 19 mai 2019 00:37