locked
BATCH : Remplacer un caractère dans un fichier RRS feed

  • Question

  • Bonjour,
    Je souhaite remplacer le caractère "\" par "\\" dans un fichier, en utilisant un batch.
    Comment procéder ?

    Cdlt,

    mercredi 18 mars 2015 17:59

Réponses

  • C'est du bricolage, mais cela fonctionne.

    Voici un script:

    @echo Off
    setlocal enabledelayedexpansion

    set FileToCheck=D:\Documents\Alain.old\Desktop\Test\ntlist.txt
    set OutputFile=D:\Documents\Alain.old\Desktop\Test\Out.txt

    if exist "%OutputFile%" del "%OutputFile%"
    for /f "usebackq delims=*" %%T in ("%FileToCheck%") do (
      echo %%T
      Set TempVar=%%T
      set TempVar=!TempVar:\=\\!
      echo !TempVar!>>"%OutputFile%"
      )

    pause

    Celui-ci parcours le texte, Chaque ligne est stockée dans la variable TempVar

    Cette variable est transformée, et puis elle est injectée dan un nouveau fichier.

    Limitation:

    J'utilise le délimiteur * car celui-ci ne peut être présent, par exemple, dans un non de dossier\fichier

    Utilise ce que tu veux comme délimiteur, mais si possible, un caractère qui ne se trouve pas dans le fichier d'origine.

    ++

    Alain

    mardi 24 mars 2015 18:01

Toutes les réponses

  • Bonjour,
    Je souhaite remplacer le caractère "\" par "\\" dans un fichier, en utilisant un batch.
    Comment procéder ?

    Cdlt,

    Bonjour Cyril,

    Tu peux le faire en PowerShell :

    Get-Content mon.txt -replace '\','\\' | out-file MonNouveau.txt

    Un truc dans ce genre là.


    Blog
    Scripts

    mercredi 18 mars 2015 21:25
  • Bonjour,

    Je ne peux utiliser que du batch DOS/Windows ou du VBscript, car cela doit fonctionner sur du Windows XP.
    Je ne peux installer PowerShell sur Windows XP.

    Cdlt,

    jeudi 19 mars 2015 12:33
  • Bonjour,

    Je ne peux utiliser que du batch DOS/Windows ou du VBscript, car cela doit fonctionner sur du Windows XP.
    Je ne peux installer PowerShell sur Windows XP.

    Cdlt,

    Si tu peux.

    Lien : https://support.microsoft.com/en-us/kb/968929/fr-fr


    Blog
    Scripts


    jeudi 19 mars 2015 12:36
  • POWERSHELL :
    Non, je ne pourrais pas l'installer.

    jeudi 19 mars 2015 16:41
  • Bonjour,

    Avez-vous essayé cela :

    support.microsoft.com/fr-fr/kb/926139

    Cordialement,
    Boris

    •Votez! Appel à la contribution. Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    vendredi 20 mars 2015 08:34
  • POWERSHELL :
    Non, je ne pourrais pas l'installer.

    -------UNIQUEMENT DU SCRIPT DOS/WINDOWS OU DU VBSCRIPT------

    Il est possible d'embarquer un fichier exe et quelques dll de petite taille si nécessaire.

    mais pas de PowerShell !!!

    • Modifié Cerkyr vendredi 20 mars 2015 08:50
    vendredi 20 mars 2015 08:48
  • C'est du bricolage, mais cela fonctionne.

    Voici un script:

    @echo Off
    setlocal enabledelayedexpansion

    set FileToCheck=D:\Documents\Alain.old\Desktop\Test\ntlist.txt
    set OutputFile=D:\Documents\Alain.old\Desktop\Test\Out.txt

    if exist "%OutputFile%" del "%OutputFile%"
    for /f "usebackq delims=*" %%T in ("%FileToCheck%") do (
      echo %%T
      Set TempVar=%%T
      set TempVar=!TempVar:\=\\!
      echo !TempVar!>>"%OutputFile%"
      )

    pause

    Celui-ci parcours le texte, Chaque ligne est stockée dans la variable TempVar

    Cette variable est transformée, et puis elle est injectée dan un nouveau fichier.

    Limitation:

    J'utilise le délimiteur * car celui-ci ne peut être présent, par exemple, dans un non de dossier\fichier

    Utilise ce que tu veux comme délimiteur, mais si possible, un caractère qui ne se trouve pas dans le fichier d'origine.

    ++

    Alain

    mardi 24 mars 2015 18:01