[Batch] problème d'écriture.

Résolu
Bonjour,

Voilà mon problème,
Je créé un script pour récupérer les numéros de série des machines d'un parc en les associant à leur nom de machine.

echo %computername% >>c:\serial.txt

wmic bios get serialnumber>>c:\serial.txt


Le résultat c'est :
MaMachine
%*$^ù!:


La 2ème ligne est constitué de carrés ou de rectangle avec écrit null dedans !

Si j'inverse les lignes c'est le nom du poste qui est composé de carré.
Et chaque ligne fonctionne indépendement mais je n'ai pas le droit de faire 2 batch.

Merci de m'éclairer.
Configuration: Windows XP
Firefox 3.0.11

10 réponses

  1. Contributeur
    c'est la commande type qui convertit

    type c:\serial.txt_unicode > c:\serial.txt_ascii
    1. Désolé je comprend vite mais il faut m'expliquer longtemps, voila mon script en entier peut être ce sera plus simple :

      wmic bios get serialnumber>>c:\serial2.txt
      type c:\serial2.txt_unicode > c:\serial2.txt_ascii
      
      
      echo Nom de la machine>>c:\serial2.txt
      echo %computername% >>c:\serial2.txt
  2. Contributeur
    comme je disais plus haut il faut tester car il n'est pas sur que le conversion se fasse, je n'ai pas la commande wmic

    wmic bios get serialnumber > c:\serial.txt
    type c:\serial.txt > c:\serial2.txt

    on affiche serial2.txt
    type serial2.txt

    si c'est ok
    echo Nom de la machine>>c:\serial2.txt
    echo %computername% >>c:\serial2.txt
    1. Contributeur
      hello
      et sans rediriger dans un fichier, ça s'affiche bien à l'écran ?
      et en redirigeant dans 2 fichiers séparés ?
      wmic génère peut-être de l'Unicode
      1. en effet dans 2 fichiers, cela fonctionne.
        Je pencherais pour l'unicode aussi mais je n'ai pas trouver de commande pour repasser en 'alphabet normal'.
        1. Contributeur
          type fichier_unicode > fichier_ascii
          va convertir, pour autant que le fichier unicode ait l'entête 0xff ou 0xfe, essaye mais je ne suis pas sûr que la redirection DOS place cette entete
          1. La ligne de commande ressemble à cela :
            c:\serial.txt_unicode > c:\serial.txt_ascii

            ?
            1. Ça ne fonctionne pas, il m'est indiqué :
              c:\serial.txt_unicode n'est pas une commande reconnue.
              1. Contributeur
                il faut utiliser le nom que tu lui a donné dans ta commande >>