Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2381 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch - Supprimer l'espace à la fin de chaque ligne d'un fichier.txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch - Supprimer l'espace à la fin de chaque ligne d'un fichier.txt

n°1427524
webding
Posté le 18-08-2006 à 21:49:43  profilanswer
 

Bonjour, j'ai besoin de créer un boucle for pour supprimer  l'espace à la fin de chaque ligne d'un fichier.txt, j'ai un script qui liste le contenu d'un répertoire dans un fichier.txt et il ajoute un espace à la fin de chaque ligne, cet espace me gêne pour réutiliser les chemins, quelqu'un saurait-il comment je peux syntaxer cette boucle ?

mood
Publicité
Posté le 18-08-2006 à 21:49:43  profilanswer
 

n°1427533
wackevat
Posté le 18-08-2006 à 22:22:47  profilanswer
 

Si tu passes une chaîne de caractères en paramètre d'une procédure, la syntaxe %~1 supprime les espaces superflus au début et à la fin de la chaîne.

n°1427534
webding
Posté le 18-08-2006 à 22:32:36  profilanswer
 

Merci, mais coment faire pour passer les chemins de fichiers contenu dans le fichier.txt à la variable %~1 ?

n°1427535
webding
Posté le 18-08-2006 à 22:35:40  profilanswer
 

Ah, ok je vois ce que tu veux dire, alors voilà ma boucle for qui liste les fichiers dans le fichier.txt:
 

Code :
  1. for /r "%VarRepSource%\" %%i in (*.bat) do echo %%~i>> result.txt


J'ai ajouter le ~ à la variable %%i, mais l'espace apparait toujours

n°1427562
wackevat
Posté le 18-08-2006 à 23:23:48  profilanswer
 

Je parlais de %~1 :)
 
Donc :

Code :
  1. for .... %%i ... do (
  2.   call :process "%%i"
  3. )
  4. goto next
  5. :process
  6. echo %~1>>result.txt
  7. goto :eof
  8. :next

n°1427571
webding
Posté le 18-08-2006 à 23:42:49  profilanswer
 

Merci encore  :)  
 
Le code focntionne sauf si je me sert la la variable %1 pour le fichier comme ceci:
 

Code :
  1. for /r "%~1\" %%i in (*.bat) do
  2. call :process "%%i"
  3. )
  4. goto next
  5. :processecho %~1>>result.txt
  6. goto :eof
  7. :next

n°1427574
wackevat
Posté le 18-08-2006 à 23:49:03  profilanswer
 

Et c'est quoi le problème (sans compter la faute de frappe :D ) ?

n°1427576
webding
Posté le 18-08-2006 à 23:52:17  profilanswer
 

Que ça ne marche pas si je me sers le %1 pour récupérer le fichier glisser sur la batch.
 
for /r "%~1\" %%i in (*.bat) do


Message édité par webding le 19-08-2006 à 00:00:42
n°1427579
wackevat
Posté le 19-08-2006 à 00:02:42  profilanswer
 

Quand tu glisses un fichier, %1 = chemin complet du fichier avec guillemets si nécessaire.
 
Or
for /r
doit être suivi du chemin d'un dossier. Ce n'est pas la même chose.

n°1427580
webding
Posté le 19-08-2006 à 00:07:42  profilanswer
 

J'ai dit nimporte quoi, désole, c'est un répertoire que je fait glisser sur la batch, pour y kister les fichier, mais le fichier.txt n'est pas généré

mood
Publicité
Posté le 19-08-2006 à 00:07:42  profilanswer
 

n°1427582
wackevat
Posté le 19-08-2006 à 00:10:39  profilanswer
 

Oki.
 
Et pourquoi le \ après %~1 ? Il y a une raison particulière ?
 
Bon, je vais au dodo :sleep: La suite demain :)
 
PS : ne JAMAIS générer un fichier sans son chemin complet. Si ça se trouve, ton .txt est bien créé mais tu ne le trouve pas. Chuis pas sûre, mais vérifie :D


Message édité par wackevat le 19-08-2006 à 00:11:53
n°1427769
webding
Posté le 19-08-2006 à 18:19:58  profilanswer
 

Me revoilà, ça ne marche pas avec cette boucle, là je récupére le chemin du répertoire favoris dans la base de registre:
 
 

Code :
  1. echo set VrRegFavoris=%%~1> "%~dp0supprspace.bat"
  2. for /f "skip=4 tokens=1,2* delims= " %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites') do call "%~dp0supprspace.bat" "%%c"
  3. echo %VrRegFavoris%>f


Message édité par webding le 19-08-2006 à 18:20:55
n°1428126
wackevat
Posté le 20-08-2006 à 18:25:25  profilanswer
 

Qu'est-ce qui ne marche pas ? Aucun problème chez moi, à part le fait que le code est tout moche, ou pourquoi faire simple quand on peut faire compliqué :D

Code :
  1. for /f "skip=4 tokens=2*" %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Favorites') do (
  2.   echo %%b>"%~dpn0.txt"
  3. )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch - Supprimer l'espace à la fin de chaque ligne d'un fichier.txt

 

Sujets relatifs
creer toutes les minutes un fichier au format RSS en C#[C#.Net] Bouton pour télécharger un fichier
Forcer l'enregistrement d'un fichier RTF ouvert via IESupprimer des entrées elles n'existent pas dans une autre table
Probleme de socket ? ou de mise en place dans un fichier ?Probleme mise à la ligne javascript
Arguments en ligne de commandeProblème de saut de ligne
[Help] Renommer une liste de fichier 
Plus de sujets relatifs à : Batch - Supprimer l'espace à la fin de chaque ligne d'un fichier.txt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR