Comment compter tous les fichiers d'un type donné (par exemple * .mp3) dans un dossier désigné (et éventuellement des sous-dossiers) à partir de la ligne de commande dans une variable d'environnement?
(pas de PowerShell s'il vous plaît, juste des commandes par lots)
set filesCount=0 & for %f in (*) do @(set /a filesCount+=1 > nul)
Utilisez la commande suivante:
dir /b *.mp3 /s 2> nul | find "" /v /c > tmp && set /p count=<tmp && del tmp && echo %count%
La variable d'environnement %count%
contiendra le nombre de fichiers.
Remarque:
/s
si vous ne souhaitez pas compter les fichiers dans les sous-dossiers.Liste du répertoire pour afficher les 17 fichiers:
F:\test>dir /b *.txt /s
F:\test\abc.txt
F:\test\blackwhite.txt
F:\test\cpu.txt
F:\test\interface.txt
F:\test\Lorem ipsum.txt
F:\test\right.txt
F:\test\rights.txt
F:\test\software.txt
F:\test\tabs.txt
F:\test\test.txt
F:\test\this is inside junction.txt
F:\test\unique.txt
F:\test\xyz.txt
F:\test\sub\abc.txt
F:\test\sub\xyz.txt
F:\test\sub with space\junction sub with space.txt
F:\test\sub with space\xyz.txt
Exécutez la commande:
F:\test>dir /b *.txt /s 2> nul | find "" /v /c > tmp && set /p count=<tmp && del tmp && echo %count%
17
Utilisez une combinaison de dir
et find
pour compter les fichiers. Stockez les fichiers dans une variable via la boucle for
name__. Redirige la sortie d'erreur vers nul
pour masquer l'erreur File Not Found
.
@echo off
for /f %%i in ('dir *.xlsx /s /b 2^> nul ^| find "" /v /c') do set VAR=%%i
echo %VAR%
Reportez-vous à la description des paramètres à l'aide de /?
pour dir
name__, find
et for
name__.