2017-10-20 18 views
0

次のことを行うコマンドスクリプトを作成しようとしています。特定のディレクトリ内の各ファイルについて、ファイル名とファイルのサイズを取得します。ファイル名が私が探しているもので、ファイルサイズが0より大きい場合、ファイルを処理したいと思います。再帰的スイッチを使用せずにディレクトリからファイル名とファイルサイズを取得

ファイル名を正しく取得できますが、再帰スイッチを使用しないとファイルサイズを取得できません。

このコードは動作しますが、私はそれがサブディレクトリに見たくない:

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

私は周りを見回してきましたが、私は必要なものを見つけることができませんでした。どんな助けもありがとう。

答えて

0

私はついにそれを理解しました。ここで私は仕事を終わらせるために使用したものです。

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 
      ) 
     ) 
    ) 
) 
関連する問題