IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Batch dos, redirection fichier et accent.


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut Batch dos, redirection fichier et accent.
    Bonjour,

    Ayant un Windows français, certaines commandes DOS génèrent des sorties avec des accents, pour l'affichage à l'écran pas de problème, mais pour une redirection vers un fichier, les accents ne passe pas.
    Voilà ce va générer un ping :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Envoi d'une requˆte 'ping' sur 10.0.0.1 avec 32 octets de donn‚esÿ:
    
    D‚lai d'attente de la demande d‚pass‚.
    Si il y'a une solution, merci.

  2. #2
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Les accents c'est parce que le texte en convertit en OEM, pour fficher tes accent correctement il faut que tu convertisse le texte en ANSI, tu peut utiliser l'éditeur Metapad: http://liquidninja.com/metapad/

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Ok, mais la transformation se fait au moment de l'écriture dans le fichier ou au moment de l'ouverture du fichier, autrement dit c'est le batch ou l'éditeur de texte qui pose problème ?

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    C'est grace a ca que les accent s'affiche dans la console, les accent doivent être converti en OEM pour être afficher correctement dans la console.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Après avoir essayé Metapad, j'en conclu que c'est l'éditeur qui pose problème. Et donc comme la majorité des gens qui vont ouvrir ce fichier le feront avec notepad, mon problème est insoluble ?

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Est-ce possible de spécifier dans le batch de forcer l'écriture vers le fichier de sortie en format ANSI ?
    Peut-être que je rêve...

  7. #7
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par derfatypik Voir le message
    Est-ce possible de spécifier dans le batch de forcer l'écriture vers le fichier de sortie en format ANSI ?
    A ma connaissance non

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Je ne sais pas ce que veut dire insoluble

    Si je met mon problème dans l'eau, il ne va pas se dissoudre...ni se résoudre ...je déconne...

    Insoluble : Qui n'a pas de solution!

    Merci pour ton aide et tes réponses !

  9. #9
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Mais il existe un scripts vbs que l'on peut utiliser comme une commande dos pour convertir un fichier.txt OEM ver ANSI et vis versa.

    voici le script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    ' ----------------------------------------------------------
    ' Script de Conversion OEM -> ANSI
    '
    ' Syntaxe:
    '   oem2ansi <srce> <dest>
    '   <srce> : fichier source (texte OEM)
    '   <dest> : fichier destination (texte ANSI)
    '
    ' JC BELLAMY © 2002
    ' ----------------------------------------------------------
    Dim oem
    oem=array( _
    "00","01","02","03","04","05","06","07","08","09","0A","0B","0C","0D","0E","0F", _
    "10","11","12","13","14","15","16","17","18","19","1A","1B","1C","1D","1E","1F", _
    "20","21","22","23","24","25","26","27","28","29","2A","2B","2C","2D","2E","2F", _
    "30","31","32","33","34","35","36","37","38","39","3A","3B","3C","3D","3E","3F", _
    "40","41","42","43","44","45","46","47","48","49","4A","4B","4C","4D","4E","4F", _
    "50","51","52","53","54","55","56","57","58","59","5A","5B","5C","5D","5E","5F", _
    "60","61","62","63","64","65","66","67","68","69","6A","6B","6C","6D","6E","6F", _
    "70","71","72","73","74","75","76","77","78","79","7A","7B","7C","7D","7E","7F", _
    "C7","FC","E9","E2","E4","E0","E5","E7","EA","EB","E8","EF","EE","EC","C4","C5", _
    "C9","E6","C6","F4","F6","F2","FB","F9","FF","D6","DC","F8","A3","D8","D7","83", _
    "E1","ED","F3","FA","F1","D1","AA","BA","BF","AE","AC","BD","BC","A1","AB","BB", _
    "A6","A6","A6","A6","A6","C1","C2","C0","A9","A6","A6","2B","2B","A2","A5","2B", _
    "2B","2D","2D","2B","2D","2B","E3","C3","2B","2B","2D","2D","A6","2D","2B","A4", _
    "F0","D0","CA","CB","C8","69","CD","CE","CF","2B","2B","A6","5F","A6","CC","AF", _
    "D3","DF","D4","D2","F5","D5","B5","FE","DE","DA","DB","D9","FD","DD","AF","B4", _
    "AD","B1","3D","BE","B6","A7","F7","B8","B0","A8","B7","B9","B3","B2","A6","A0")
    
    ForReading = 1
    ForWriting = 2
    
    Dim args, fso, fsrce, fdest
    Set fso   = WScript.CreateObject("Scripting.FileSystemObject")
    Set args  = Wscript.Arguments
    
    ' Conversion OEM -> ANSI
    If args.count<2 Then 
    	strFullName =lcase(WScript.FullName)
    	i=InStr(1,strFullName,".exe",1)
    	j=InStrRev(strFullName,"\",i,1)
    	strCommand=Mid(strFullName,j+1,i-j-1)
    	if strCommand<>"cscript" then
    		Mess=       "Conversion OEM -> ANSI" & VBCRLF
    		Mess=Mess & "JCB © 2002" & VBCRLF
    		Mess=Mess & "----------------------" & VBCRLF
    		Mess=Mess & "Syntaxe : " & VBCRLF
    		Mess=Mess & "   oem2ansi <srce> <dest>"  & VBCRLF
    		Mess=Mess & "   <srce> : fichier source (texte OEM)" & VBCRLF
    		Mess=Mess & "   <dest> : fichier destination (texte ANSI)" & VBCRLF & VBCRLF
    		Mess=Mess & "NB: pour utiliser les flux standards 'stdin' et 'stdout'," & VBCRLF
    		Mess=Mess & "    le moteur de script par défaut doit être cscript.exe" & VBCRLF
    		Mess=Mess & "    Cela s'obtient par la commande : " & VBCRLF
    		Mess=Mess & "    	cscript //H:CScript //S /Nologo" & VBCRLF & VBCRLF
    		Mess=Mess & "Si le script récupère en entrée la sortie d'un autre logiciel (piping)," & VBCRLF
    		Mess=Mess & "il faut indiquer explicitement 'cscript'" & VBCRLF
    		Mess=Mess & "Exemple :" & VBCRLF
    		Mess=Mess & "c:\>ping www.inria.fr | cscript oem2ansi.vbs > test.txt" & VBCRLF & VBCRLF
    		wscript.echo Mess
    		wscript.quit
    	else
    		Pipe=true
    		Set fsrce = WScript.StdIn
    		Set fdest = WScript.StdOut
    		end if
    else		
    	Pipe=false
    	srce=args(0)
    	dest=args(1)
    	If not fso.FileExists(srce) Then
    		Mess="Le fichier " & srce & " n'existe pas"
    		wscript.echo Mess
    		wscript.quit
    		End If
    	Set fsrce=fso.OpenTextFile(srce, ForReading)
    	Set fdest=fso.OpenTextFile(dest, ForWriting,true)
    	end if
    While not fsrce.AtEndOfStream
    	oldline=fsrce.ReadLine
    	newline=""
    	For i = 1 To len(oldline)
    		oldc=asc(mid(oldline,i,1))
    		newc=oem(oldc)
    		newline=newline & chr(hextobyte(newc))
    		Next
    	fdest.WriteLine newline
    	Wend
    fdest.close
    fsrce.close
    'If not pipe Then wscript.echo "Conversion terminée"
    Wscript.quit
    
    ' Utilitaires de conversion hexadécimale
    ' -------------------------------------
    Function hextobyte(s)
    c1=Left(s,1)
    c2=Right(s,1)
    hextobyte=hextobin(c1)*16+hextobin(c2)
    End Function
    ' -------------------------------------
    Function hextobin(c)
    Select Case c
    	Case "0","1","2","3","4","5","6","7","8","9" 
    		hextobin=asc(c)-asc("0")		   
    	Case else
    		hextobin=asc(c)-asc("A")+10
    	End Select	
    End Function
    ' -------------------------------------
    Je n'est plus ANSI to OEM, si quelqu'un aurai la lien

Discussions similaires

  1. BATCH DOS +AUTO DELETE Fichiers selon date de création
    Par FredericManche dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 17/02/2010, 15h59
  2. [BATCH] DOS, déplacement de fichier dans une boucle FOR
    Par nicoga dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 14/11/2008, 14h36
  3. [Batch] [batch] Renommer des fichiers
    Par altus643805 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 22/12/2007, 09h57
  4. Réponses: 4
    Dernier message: 23/03/2006, 22h03
  5. un batch DOS pour "nettoyer des fichiers" ?
    Par RoroMinator dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 12/02/2004, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo