从目录获取文件名和文件大小,而不使用递归切换

时间:2017-10-20 14:22:34

标签: directory command-line-interface

我正在尝试编写命令脚本来执行以下操作。对于特定目录中的每个文件,我想获取文件名和文件大小。如果文件名是我要找的文件大小大于零,我想处理文件。

我可以获得文件名,但是如果不使用递归开关我就无法获得文件大小。

此代码有效,但我不希望它在子目录中查找:

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

我环顾四周但却找不到我需要的东西。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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
            )
        )
    )
)