web-dev-qa-db-fra.com

Compter les fichiers dans un dossier et les sous-dossiers à partir de la ligne de commande

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)

5
ZEE
set filesCount=0 & for %f in (*) do @(set /a filesCount+=1 > nul)
2
10100111001

Compter les fichiers dans un dossier et des sous-dossiers

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:

  • Supprimez /s si vous ne souhaitez pas compter les fichiers dans les sous-dossiers.

Exemple (en utilisant * .txt)

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

Lectures complémentaires

4
DavidPostill

Utilisez une combinaison de diret findpour compter les fichiers. Stockez les fichiers dans une variable via la boucle forname__. Redirige la sortie d'erreur vers nulpour 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 dirname__, findet forname__.

1
Steven