[Batch] Filtrage et découpage de sortie standard

NY-152 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'utilise un utilitaire qui analyse un répertoire. La sortie de ce programme sort un pourcentage.

Ce que j'aimerais faire c'est de filtrer cette sortie et de n'afficher que le pourcentage, le tout à la volée. En Bash sous Linux, c'est possible mais je ne vois pas comment faire sous Windows en Batch. Est-ce possible ? Si oui quelqu'un peut-il m'aider ?

D'avance, merci
A voir également:

11 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
montre un exemple du texte à analyser
0
NY-152 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   24
 
La sortie est du genre :

Folder analyzed to 55% without probems
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
on utilise %a en interactif, %%a dans un .bat
avec ou sans le %
C:> set pc=Folder analyzed to 55% without probems
C:> for /f "tokens=4" %a in ('echo %pc%') do @echo %a
55%
C:> for /f "tokens=4" %a in ('echo %pc%') do @(set x=%a & echo %x:~0,-2%)
55
0
NY-152 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   24
 
L'exemple ne fonctionne pas j'ai l'erreur :

pca était inattendu.


De plus l'exemple utilise une chaine de caractère comme base de découpe, moi je cherche ç récupérer la sortie de mon programme pendant son exécution, en temps réel pour en extraire son pourcentage.

J'avoue que je ne sais pas trop comment faire. Le Batch est beaucoup plus limité que le Bash j'ai l'impression :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
for /f "tokens=4" %a in ('ta_commande') ......
0
NY-152 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   24
 
a était inattendu


Pas beaucoup de chance moi lol
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
%%a dans un .bat, montre le code
0
NY-152 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   24
 
J'ai corrigé pour le %%a (j'avais malencontreusement mis un espace)

Par contre si cela marche avec une chaîne comme dans l'exemple, ça ne marche pas avec mon programme ! Pourquoi ? Une interprétation du Batch qui foire. J'explique :

for /f "tokens=4" %%a in ('repaffect -ac -fl M:\WorkDir') do @echo %%a


Dans cette commande il me sort :

\WorkDir') était attendu


J'ai beau quotté, rien n'y fait ; Une idée ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer en protégeant le : (equivalent du \ en bash)
for /f "tokens=4" %%a in ('repaffect -ac -fl M^:\WorkDir') do @echo %%a
0
NY-152 Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   24
 
Ça fonctionne :)

Il ne reste plus qu'à trouver le moyen de récupérer le nom d'un fichier sans son extension (sans boucle for) et j'aurais fini ^^

En tout cas merci de ton aide ^^
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
avec ou sans for:
C:> set nom=fichier.txt
C:> echo %nom:~0,-4%
fichier
C:> for %a in (%nom%) do @echo %~na
fichier
0