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

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
pljboys
Batcheur occasionnel
Messages : 1
Enregistré le : 19 févr. 2015 11:52

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

Message 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.
Avatar du membre
-- batchman --
Batcheur débutant
Messages : 22
Enregistré le : 29 oct. 2014 11:37

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

Message 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
-- batchman --
Répondre