2017-10-20 27 views
0

J'essaye d'écrire un script de commande pour faire ce qui suit. Pour chaque fichier dans un répertoire spécifique, je veux obtenir le nom de fichier et la taille du fichier. Si le nom de fichier correspond à ce que je recherche et que la taille du fichier est supérieure à zéro, je souhaite traiter le fichier.Obtenir le nom de fichier et la taille du fichier du répertoire sans utiliser le commutateur récursif

Je peux obtenir le nom de fichier correct mais je ne peux pas obtenir la taille du fichier sans utiliser le commutateur récursif.

Ce code fonctionne, mais je ne veux pas regarder dans les sous-répertoires:

for /f "delims=" %%f in ('dir /s /b /a-d "%input_directory%" ') do (
    set filename=%%~nxf 
    set filesize=%%~zf 
) 

Je l'ai regardé autour mais ont été incapables de trouver ce que je dois. Toute aide serait appréciée.

Répondre

0

J'ai finalement compris. Voici ce que j'ai utilisé pour faire le travail.

for /f "tokens=*" %%f in ('dir /b "%input_directory%" ') do (
    set filename=%%~nf 
    if !filename!==somename (set validname=Y) 
    if !validname!==Y (
     for %%a in ("%input_directory%\!filename!") do (
      set filesize=%%~za 
      if !filesize!==0 (
       log as empty file 
      ) else (
       process file 
      ) 
     ) 
    ) 
)