Affichage de fichiers supérieur à...en DOS

Affichage de fichiers supérieur à...en DOS - Shell/Batch - Programmation

Marsh Posté le 16-04-2012 à 17:46:24    

Bonjour à tous,
 
Je recherche une commande ou un Batch qui doit être tout simple mais n'ayant pas pratiqué depuis longtemps je pose la question ici.
Alors voilà je cherche l'équivalent de la commande Unix "Find . -size +taille -ls >fichier.txt" mais en DOS.
Ou comment rechercher les fichiers à partir d'une certaine taille et orienter le résultat dans un fichier.
 
Bon je sais que ça se trouve dans l'explorateur avec Ctrl-F mais ce qui m'intéresse c'est vraiment d'avoir le résultat dans un fichier texte.
 
Merci d'avance de vos retours.
 
Fred

Reply

Marsh Posté le 16-04-2012 à 17:46:24   

Reply

Marsh Posté le 17-04-2012 à 10:42:22    

La commande dir /OS permet de lister les fichiers par taille croissante.
 
La commande dir /S permet de lister les fichiers dans les sous-répertoires.
 
La commande dir /S /OS combine les deux, mais le tri sur la taille est fait à l'ntérieur de chaque répertoire, et non pas de manière globale.
 
Heureusement il y a une solution simple en VBS :

' Recherche tous les fichiers plus gros que size_limit
' equivalent au find . -size +taille -ls >fichiers.txt"
'
' A lancer dans une fenêtre de console avec lea commande :
'       cscript.exe dirbig.vbs >fichiers.txt
' (Si on le lance en cliquant dessus à partir de Windows Explorer,
'  il y aura une boite de message pour chaque fichier,  
'  ce qui risque de faire beaucoup.)
'
size_limit = 60000
'
Set FSO = CreateObject("Scripting.FileSystemObject" )
 
ExploreSubfolders FSO.GetFolder("." )
 
Sub ExploreSubFolders(Folder)
  For Each Subfolder in Folder.SubFolders
    For Each File in Subfolder.Files
      If (File.Size > size_limit) Then
        Wscript.Echo Subfolder.Path & File.Name & VbTab & File.Size
      End If
    Next
    ExploreSubFolders Subfolder
  Next
End Sub


Ouvrir le bloc-notes et copier coller ces lignes dans un fichier que l'on nommera, par exemple dirbig.vbs

Reply

Marsh Posté le 17-04-2012 à 14:50:28    

Ou sinon, tu installes la version de find portée par Gnu qu'on trouve ici: http://gnuwin32.sourceforge.net/packages/findutils.htm
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 13-05-2012 à 01:44:06    

Salut,
 
je te montre deux exemples qui récupèrent les fichiers de plus de 1000 octets:
 
avec dir:

Code :
  1. setlocal enabledelayedexpansion
  2. for /f "tokens=3*" %%i in ('dir "%cd%"^|find "ÿ"^|find "/"') do set t=%%i&if /I "!t:ÿ=!" GTR "1000" echo !t:ÿ=! -- %%j>> test.txt


avec forfiles:

Code :
  1. for /f "tokens=1*" %%i in ('forfiles /p "%cd%" /c "cmd /c echo @fsize @path"') do if /i %%i GTR 1000 echo %%j>>test.txt


Message édité par Kriki le 13-05-2012 à 01:51:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed