none
[.NET 4] Redirection console dans un fichier + BATCH TYPE RRS feed

  • Question

  • Bonsoir,

    Je viens de rencontrer une feature étrange lors de la ré-écriture d'un BATCH.

    Exemple 1 - .NET 4 - Console:

    using System;
    
    namespace QuickTest4
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("1234");
            }
        }
    }
    

    produit un fichier de 6 octets (en ASCII donc).

    Dans mon programme (.NET 4, console) la même fonction produit un fichier de 12 octets (en Unicode donc).

    Dans mon BATCH, j'utilise le même code :

    @echo OFF
    cls
    COLOR 0A
    setlocal enabledelayedexpansion
    
    set g_strInternalOutputFullFilename=.\Output4.log
    "QuickTest4.exe" > "!g_strInternalOutputFullFilename!"
    type "!g_strInternalOutputFullFilename!"
    
    set g_strInternalOutputFullFilename=.\Output4_AppVersion.log
    "AppVersion4.exe" -fv -f "toto.txt" > "!g_strInternalOutputFullFilename!"
    type "!g_strInternalOutputFullFilename!"

    Dans le premier cas ça m'affiche une chaîne correcte :

    1234

    Dans le second cas, il manque le premier chiffre et j'ai un espace entre chaque :

      2 3 4

    Je ne sais pas si c'est un problème de projet C# ou de BATCH.

    Quelqu'un aurait une idée par hasard ?

    Merci,

    Vincent

    jeudi 27 août 2015 21:16

Réponses

  • Bonjour, Duvernet Vincent,

    Utilisez-vous pour l'Unicode (comme c'est marqué dans l'exemple en bas) l'option Console.OutputEncoding = System.Text.Encoding.UTF8 (où Console.OutputEncoding = System.Text.Encoding.Unicode) ?
    How to write unicode chars to console?
    Je vous remercie par avance de votre retour.

    Cordialement,
    Téodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 28 août 2015 14:01
    Modérateur

Toutes les réponses

  • Bonjour, Duvernet Vincent,

    Utilisez-vous pour l'Unicode (comme c'est marqué dans l'exemple en bas) l'option Console.OutputEncoding = System.Text.Encoding.UTF8 (où Console.OutputEncoding = System.Text.Encoding.Unicode) ?
    How to write unicode chars to console?
    Je vous remercie par avance de votre retour.

    Cordialement,
    Téodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 28 août 2015 14:01
    Modérateur
  • MERCIIIIIIIIIIIIIIIIIIIIII :)

    (Question Bonus :

    La fonction 'type' du coup, on a moyen de lui faire comprendre que c'est de l'UNICODE ?)

    mardi 1 septembre 2015 08:16