Dans un fichier (sortie log de Robocopy)
les débuts de lignes contiennent
des tabulations et des espaces ( mélange ...)
J'aimerais nettoyer ça de façon "simple et efficace"
la présence de tabulation fait que les fonction vbs
Gtrim, Ltrim et Trim sont sans effet...
J'aimerais donc fabriquer des fonctions ExLTrim, ExGTrim et ExTrim
qui puisse virer les caractères transmis en arguments...
Du style
Propre = ExLTrim( PasPropre,AVirer)
où
PasPropre est la ligne initiale
Propre est la ligne nettoyée
AVirer est un tableau de caractères
indiquant ceux qui doivent être virés en début de ligne...
Bien sûr, je peux faire ça de façon un peu bestiale
avec des boucles For Next...
mais je me dis que les as des RegExp
trouveront peut-être quelquechose de plus élégant...
@echo off Robocopy rsource rdestination /L /NJS /NJH /NC /NS /LOG:robo.log FOR /F %%f IN (robo.log) DO echo %%f
Notre ami Gilles LAURENT [MVP] tapota :
Function ExTrim (strPattern, strLine)
Set oRe=New RegExp oRe.Pattern=strPattern ExTrim=oRe.Replace(strLine,"")
End Function
Set oFs=CreateObject("Scripting.FileSystemObject") Set oFile=oFs.OpenTextFile("robocopy.log", 1)
While Not oFile.AtEndOfStream strLine=oFile.Readline 'WScript.Echo ExTrim("^s+|s+$", strLine) ' Trim 'WScript.Echo ExTrim("^s+", strLine) ' LTrim 'WScript.Echo ExTrim("s+$", strLine) ' RTrim Wend --- Coupez ici ---
Merci beaucoup à vous deux !!! C'est incroyable comme c'est simple pour ceux qui savent ;o)
A+
HB
Gilles LAURENT [MVP]
"moi" a écrit dans le message de news: | Merci beaucoup à vous deux !!! | C'est incroyable comme c'est simple pour ceux qui savent ;o)
Oops ! Bug sur la fonction ExTrim !
Function ExTrim (strPattern, strLine)
Set oRe=New RegExp oRe.Pattern=strPattern oRe.Global=True ' nécessaire pour le Trim ExTrim=oRe.Replace(strLine,"")
End Function
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"moi" <moi@pas.la.ici> a écrit dans le message de
news:eQePL92ZIHA.1960@TK2MSFTNGP02.phx.gbl
| Merci beaucoup à vous deux !!!
| C'est incroyable comme c'est simple pour ceux qui savent ;o)
Oops ! Bug sur la fonction ExTrim !
Function ExTrim (strPattern, strLine)
Set oRe=New RegExp
oRe.Pattern=strPattern
oRe.Global=True ' nécessaire pour le Trim
ExTrim=oRe.Replace(strLine,"")
End Function
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"moi" a écrit dans le message de news: | Merci beaucoup à vous deux !!! | C'est incroyable comme c'est simple pour ceux qui savent ;o)
Oops ! Bug sur la fonction ExTrim !
Function ExTrim (strPattern, strLine)
Set oRe=New RegExp oRe.Pattern=strPattern oRe.Global=True ' nécessaire pour le Trim ExTrim=oRe.Replace(strLine,"")
End Function
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Gilles LAURENT [MVP]
"Méta-MCI (MVP)" a écrit dans le message de news:47a77086$0$903$ | Bonsoir !
Bonsoir,
| Inutile de s'encombrer de fonctions compliquées. Le FOR de l'invite de | commande fait un trim implicite. | Voici un exemple : | | @echo off | Robocopy rsource rdestination /L /NJS /NJH /NC /NS | /LOG:robo.log | FOR /F %%f IN (robo.log) DO echo %%f
1- La ligne entière doit être préservée @echo off for /f "tokens=*" %%f in (robo.log) do echo %%f
2- La commande FOR ne fait qu'un LTrim
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"Méta-MCI (MVP)" <enleverlesX.XmcX@XmclaveauX.com> a écrit dans le
message de
news:47a77086$0$903$ba4acef3@news.orange.fr
| Bonsoir !
Bonsoir,
| Inutile de s'encombrer de fonctions compliquées. Le FOR de l'invite de
| commande fait un trim implicite.
| Voici un exemple :
|
| @echo off
| Robocopy rsource rdestination /L /NJS /NJH /NC /NS
| /LOG:robo.log
| FOR /F %%f IN (robo.log) DO echo %%f
1- La ligne entière doit être préservée
@echo off
for /f "tokens=*" %%f in (robo.log) do echo %%f
2- La commande FOR ne fait qu'un LTrim
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Méta-MCI (MVP)" a écrit dans le message de news:47a77086$0$903$ | Bonsoir !
Bonsoir,
| Inutile de s'encombrer de fonctions compliquées. Le FOR de l'invite de | commande fait un trim implicite. | Voici un exemple : | | @echo off | Robocopy rsource rdestination /L /NJS /NJH /NC /NS | /LOG:robo.log | FOR /F %%f IN (robo.log) DO echo %%f
1- La ligne entière doit être préservée @echo off for /f "tokens=*" %%f in (robo.log) do echo %%f
2- La commande FOR ne fait qu'un LTrim
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
F. Dunoyer [MVP]
moi a formulé ce lundi :
Bonjour,
Dans un fichier (sortie log de Robocopy) les débuts de lignes contiennent des tabulations et des espaces ( mélange ...)
Ne pas oublier aussi du coté du robocopy le paramètre /NP qui produit
des logs beaucoups plus propres :)
-- François Dunoyer [MVP Windows Server / Security] Jours après jours avec Longhorn Server http://fds.mvps.org/LH/index.htm
moi a formulé ce lundi :
Bonjour,
Dans un fichier (sortie log de Robocopy)
les débuts de lignes contiennent
des tabulations et des espaces ( mélange ...)
Ne pas oublier aussi du coté du robocopy le paramètre /NP qui produit
des logs beaucoups plus propres :)
--
François Dunoyer [MVP Windows Server / Security]
Jours après jours avec Longhorn Server
http://fds.mvps.org/LH/index.htm