Boucle avec variable dans un fichier txt + calcul de la taille d'un dossier
Résolu/Fermé
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
-
15 déc. 2019 à 14:04
GEEK82500 Messages postés 8 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 15 décembre 2019 - 15 déc. 2019 à 17:40
GEEK82500 Messages postés 8 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 15 décembre 2019 - 15 déc. 2019 à 17:40
A voir également:
- Boucle avec variable dans un fichier txt + calcul de la taille d'un dossier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Forcer la suppression d'un fichier - Guide
6 réponses
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
Modifié le 15 déc. 2019 à 14:16
Modifié le 15 déc. 2019 à 14:16
Bonjour,
Est-ce que tu as essayé cela :
Est-ce que tu as essayé cela :
Setlocal EnableExtensions EnableDelayedExpansion
for /f "usebackq delims=" %%X in ("C:\Users\FIAULT\Desktop\users_profs.txt") do (
for /r "C:\Users\FIAULT\Desktop\profs\%%X\WinConf.V6" %%A in (*) do set /a size+=%%~zA/1000000
)
echo !size!Mo >> "C:\Users\FIAULT\Desktop\extraction.txt"
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
15 déc. 2019 à 14:58
15 déc. 2019 à 14:58
oups, désolé je n'avais pas vu ta réponse, ci-dessous le résultat (ça semble bon)
C:\Users\FIAULT\Desktop>for /F "usebackq delims=" %X in ("C:\Users\FIAULT\Desktop\users_profs.txt") do echo %X
C:\Users\FIAULT\Desktop>echo CANALB
CANALB
C:\Users\FIAULT\Desktop>echo FEDRIGM
FEDRIGM
C:\Users\FIAULT\Desktop>echo FIAULTA
FIAULTA
C:\Users\FIAULT\Desktop>pause
Appuyez sur une touche pour continuer...
C:\Users\FIAULT\Desktop>for /F "usebackq delims=" %X in ("C:\Users\FIAULT\Desktop\users_profs.txt") do echo %X
C:\Users\FIAULT\Desktop>echo CANALB
CANALB
C:\Users\FIAULT\Desktop>echo FEDRIGM
FEDRIGM
C:\Users\FIAULT\Desktop>echo FIAULTA
FIAULTA
C:\Users\FIAULT\Desktop>pause
Appuyez sur une touche pour continuer...
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
15 déc. 2019 à 15:07
15 déc. 2019 à 15:07
Très bien maintenant que donne ceci :
for /r "C:\Users\FIAULT\Desktop\profs\CANALB\WinConf.V6" %%A in (*) do echo %%A
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
15 déc. 2019 à 15:11
15 déc. 2019 à 15:11
ben là je vais peut être pas copier tout le résultat car il y pas mal de choses
dans la fenêtre cmd ça a fait des résultats comme ci-dessous pour chaque fichier
C:\Users\FIAULT\Desktop>echo C:\Users\FIAULT\Desktop\profs\CANALB\WinConf.V6\test3\Visites BTS\vignaux.pdf
C:\Users\FIAULT\Desktop\profs\CANALB\WinConf.V6\test3\Visites BTS\vignaux.pdf
dans la fenêtre cmd ça a fait des résultats comme ci-dessous pour chaque fichier
C:\Users\FIAULT\Desktop>echo C:\Users\FIAULT\Desktop\profs\CANALB\WinConf.V6\test3\Visites BTS\vignaux.pdf
C:\Users\FIAULT\Desktop\profs\CANALB\WinConf.V6\test3\Visites BTS\vignaux.pdf
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
15 déc. 2019 à 15:20
15 déc. 2019 à 15:20
Très bien donc ce script devrait marcher :
@echo off
Setlocal EnableExtensions EnableDelayedExpansion
for /f "usebackq delims=" %%X in ("C:\Users\FIAULT\Desktop\users_profs.txt") do (
for /r "C:\Users\FIAULT\Desktop\profs\%%X\WinConf.V6" %%A in (*) do set /a size+=%%~zA/1000000
echo !size!Mo >> "C:\Users\FIAULT\Desktop\extraction.txt"
)
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
Modifié le 15 déc. 2019 à 15:28
Modifié le 15 déc. 2019 à 15:28
c'est incompréhensible, j'ai toujours les trois lignes avec Mo sur chacune de ces trois lignes mais sans la valeur
alors que quand je teste la ligne ci-dessous ça marche... (juste un truc j'ai mis %size% et pas !size! comme sur ta réponse parce que sinon ça affichait !size! sur le script, c'est un problème ça?)
for /r "C:\Users\FIAULT\Desktop\profs\FIAULTA\WinConf.V6" %%A in (*) do set /a size+=%%~zA/1000000
echo %size% Mo >> "C:\Users\FIAULT\Desktop\extraction.txt"
alors que quand je teste la ligne ci-dessous ça marche... (juste un truc j'ai mis %size% et pas !size! comme sur ta réponse parce que sinon ça affichait !size! sur le script, c'est un problème ça?)
for /r "C:\Users\FIAULT\Desktop\profs\FIAULTA\WinConf.V6" %%A in (*) do set /a size+=%%~zA/1000000
echo %size% Mo >> "C:\Users\FIAULT\Desktop\extraction.txt"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
15 déc. 2019 à 15:37
15 déc. 2019 à 15:37
oui j'avais bien cette ligne et j'ai à nouveau remplacé %size% par !size!
mais j'ai toujours:
Mo
Mo
Mo
...
mais j'ai toujours:
Mo
Mo
Mo
...
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
15 déc. 2019 à 15:48
15 déc. 2019 à 15:48
Je pense avoir une solution, en appelant une fonction :
@echo off
Setlocal EnableExtensions EnableDelayedExpansion
for /f "usebackq delims=" %%X in ("C:\Users\FIAULT\Desktop\users_profs.txt") do (
call :taille %%X
echo !size!Mo >> "C:\Users\FIAULT\Desktop\extraction.txt"
)
pause
exit
:taille
set size=0
for /r "C:\Users\FIAULT\Desktop\profs\%1\WinConf.V6" %%A in (*) do set /a size+=%%~zA/1000000
goto :eof
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
15 déc. 2019 à 15:54
15 déc. 2019 à 15:54
ça marche!!! :)
juste deux trucs ça me donne
636Mo
422Mo
211Mo
alors que j'aurais besoin d'avoir le nom devant aussi genre :
CANALB,636Mo
FEDRIGM,422Mo
FIAULTA,211Mo
également mais ça c'est pas très important le calcul de la taille sous estime d'environ 10% par rapport à quand je fais clic droit propriétés ( pas très important parce que s'agissant des winconf j'ai juste besoin de savoir s'ils sont proches de 4 ou 5 Mo alors que parfois sur certaines sessions il y 200Mo ou plus, mais bon au cas où tu aurais une idée...
en tout cas merci beaucoup!!! vraiment!!!
juste deux trucs ça me donne
636Mo
422Mo
211Mo
alors que j'aurais besoin d'avoir le nom devant aussi genre :
CANALB,636Mo
FEDRIGM,422Mo
FIAULTA,211Mo
également mais ça c'est pas très important le calcul de la taille sous estime d'environ 10% par rapport à quand je fais clic droit propriétés ( pas très important parce que s'agissant des winconf j'ai juste besoin de savoir s'ils sont proches de 4 ou 5 Mo alors que parfois sur certaines sessions il y 200Mo ou plus, mais bon au cas où tu aurais une idée...
en tout cas merci beaucoup!!! vraiment!!!
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 921
Modifié le 15 déc. 2019 à 16:03
Modifié le 15 déc. 2019 à 16:03
Oui il y a une légère dérive mais inférieure à 1% chez moi.
Voilà la modif pour le nom :
Voilà la modif pour le nom :
@echo off
Setlocal EnableExtensions EnableDelayedExpansion
for /f "usebackq delims=" %%X in ("C:\Users\FIAULT\Desktop\users_profs.txt") do (
call :taille %%X
echo %%X,!size!Mo >> "C:\Users\FIAULT\Desktop\extraction.txt"
)
pause
exit
:taille
set size=0
for /r "C:\Users\FIAULT\Desktop\profs\%1\WinConf.V6" %%A in (*) do set /a size+=%%~zA/1000000
goto :eof
GEEK82500
Messages postés
8
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
15 décembre 2019
>
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
15 déc. 2019 à 17:40
15 déc. 2019 à 17:40
ça marche!!! nickel et encore merci pour l'efficacité!!!
15 déc. 2019 à 14:22
Mo
Mo
Mo
Il n'y a pas le nom devant ni la valeur (oui j'avais oublié, j'aurais souhaité obtenir dans le fichier extraction.txt des lignes sous le format NOM,%SIZE%Mo) dans l'exemple ci-dessus j'ai trois noms sur trois lignes dans le fichiers users_profs.txt donc le nombre de ligne du résultat semble correspondre mais pas le fait qu'il manque la valeur (et le nom)
Modifié le 15 déc. 2019 à 14:41
Que donne comme résultat ceci :