Page 1 sur 1

Batch: suppression du premier et dernier caractère d'un .txt

Posté : 19 févr. 2015 12:14
par pljboys
Bonjour,

Voilà je rencontre des problèmes sur la création d'un script Batch ayant pour but de supprimer le premier et dernier caractère de chaque ligne d'un fichier .txt. Etant novice dans ce domaine, j'ai effectué de multiples recherches sur internet mais sans grand succès.
C'est pourquoi je viens vers vous aujourd'hui.

Voici un exemple de fichier .txt

"0018.1909.61f1;Po4"
"0018.1909.61f2;Po4"
"10bd.1806.5c99;Gi4/0/26"
"2037.0676.bf99;Gi4/0/25"
"64ae.0c9e.2e17;Po5"
"64ae.0c9e.2e18;Po5"

Comme vous pouvez le voir, je souhaite supprimer les " au début et à la fin de chaque ligne.

Pour le moment, mon script est tourné vers ce style:

echo off

SETLOCAL enabledelayedexpansion

for /f %%a in (result.txt) do
(

set variable=%%a
echo !variable:~0,-1!>>resultat.txt

)


En espérant pouvoir trouver un peu d'aide.

Merci.

Re: Batch: suppression du premier et dernier caractère d'un .txt

Posté : 04 mars 2015 17:20
par -- batchman --
Salut ! :)

T'as presque trouvé, il suffit de changer ça : echo !variable:~1 ,-1!>>resultat.txt[/b] ;)
Et donc ça te donne ça :

Code : Tout sélectionner

@echo off
for /f "tokens=*" %%a in (texte.txt) do (
set variable=%%a
echo !variable:~1,-1!>>resultat.txt
)
type resultat.txt
echo.
echo.
pause
start notepad resultat.txt
 
Par contre, si il y a des espaces après tes "0018.1909.61f1;Po4" l'astuce ne marche pas (il reste les derniers guillemets :!: ) ;
vaux mieux ce code ci-dessous, qui fonctionne en toutes circonstances ;)

Code : Tout sélectionner

@echo off
for /f delims^=^"^ tokens^=1 %%a in (texte.txt) do (
echo %%a>>resultat.txt
)
type resultat.txt
echo.
echo.
pause
start notepad resultat.txt
 
J'ai testé, mais vérifie quand même :D