Supprimer les espces blancs en fin de chaîne - Shell/Batch - Programmation
Marsh Posté le 28-09-2007 à 16:27:10
@echo off
for /f "delims=" %%a in (t.txt) do call :cmd "%%a"
pause
exit
:cmd
set ligne=%~1
set var=%ligne:~-2%
set var=%var: =%
set ligne=%ligne:~0,-2%
set ligne=%ligne%%var%
echo %ligne%> s.txt
Marsh Posté le 28-09-2007 à 21:31:37
merci blastkiller mais ça fonctionne pas ... c'est sympa quand même
Marsh Posté le 29-09-2007 à 12:51:13
Au cas où t'aurais pas compris, parce que bon, chez moi sa marche, le programme lit le fichier t.txt, supprime les espaces de fin de ligne, et ressort tout ça dans le fichier s.txt
Marsh Posté le 29-09-2007 à 13:36:08
@blastkiller
si je fais
echo (%ligne%)
les espaces y sont toujours
donc ça fonctionne quand tu écris dans un nouveau fichier
moi je dois manipuler la chaîne extraite
inscrire la chaîne extraite dans un fichier texte pour le réouvrir et reprendre la chaîne c'est un peu lourd y a peut être plus simple...
Marsh Posté le 29-09-2007 à 15:20:08
@echo off
set chaine=espace_a_la_fin
echo (%chaine%)
::y'a bien un espace a la fin
set var=%chaine:~-1%
if "%var%"==" " echo (%chaine:~0,-1%)
::y'a pu d'espace
pause
exit
Marsh Posté le 29-09-2007 à 15:29:21
C:\>set chaine=espace_a_la_fin
C:\>echo (%chaine%)
(espace_a_la_fin )
C:\>set chaine2=%chaine: =%
C:\>echo (%chaine2%)
(espace_a_la_fin)
C:\>
Jean-Pierre.
Marsh Posté le 29-09-2007 à 17:23:27
ReplyMarsh Posté le 01-10-2007 à 13:46:10
blastkiller a écrit : @aigles |
Oups! C'est effectivement un peu radical comme méthode !
Marsh Posté le 19-08-2014 à 14:57:33
REM Pour ne supprimer qu'à la fin, tant qu'il y en a...
rem (au début $="A B C D ", à la fin $="A B C D" )
rem Attention lors d'un copier/coller, cette page peut rajouter des espaces après "set $$=%$%", ce qui crée un bug.
rem Seul "set $=A B C D " a des espaces en fin de ligne.
REM Exemple simplifié (sans fonction):
:-------------------------------------------------------------------
@echo off
set $=A B C D
echo I%$%I
:DEL_LAST_SPACES
if "%$%"=="" goto DEL_LAST_SPACES_end
set $$=%$%
if not "%$:~,-1% "=="%$$%" goto DEL_LAST_SPACES_end
set $=%$:~,-1%
goto DEL_LAST_SPACES
:DEL_LAST_SPACES_end
echo I%$%I
pause
Marsh Posté le 22-12-2019 à 16:46:13
blastkiller a écrit : @echo off |
désolé pour le déterrage profond mais j'aurais été intéressé de pouvoir lancer ce script depuis un autre dossier que le fichier txt à traiter. Est-ce que quelqu'un saurait l'adapter?
merci d'avance
Marsh Posté le 27-09-2007 à 20:56:52
Bonsoir j'aimerais savoir s'il y a une fonction native en batch pour supprimer les espaces blancs en fin de chaîne
(genre rtrim) ou alors un bout de code assez simple ?
merci beaucoup