[Batch] Filtrage et découpage de sortie standard

Fermé
NY-152 Messages postés 115 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 27 février 2021 - 22 janv. 2015 à 15:00
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 26 janv. 2015 à 08:50
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
24 janv. 2015 à 08:08
hello
montre un exemple du texte à analyser
0
NY-152 Messages postés 115 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 27 février 2021 24
25 janv. 2015 à 11:11
La sortie est du genre :

Folder analyzed to 55% without probems
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 janv. 2015 à 12:49
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 mercredi 22 juillet 2009 Statut Membre Dernière intervention 27 février 2021 24
25 janv. 2015 à 13:43
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 janv. 2015 à 14:21
for /f "tokens=4" %a in ('ta_commande') ......
0
NY-152 Messages postés 115 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 27 février 2021 24
25 janv. 2015 à 15:07
a était inattendu


Pas beaucoup de chance moi lol
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 janv. 2015 à 15:24
%%a dans un .bat, montre le code
0
NY-152 Messages postés 115 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 27 février 2021 24
25 janv. 2015 à 15:57
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 janv. 2015 à 16:13
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 mercredi 22 juillet 2009 Statut Membre Dernière intervention 27 février 2021 24
25 janv. 2015 à 17:38
Ç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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
26 janv. 2015 à 08:50
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