批处理脚本检查文件大小方法?

时间:2013-06-20 17:40:59

标签: batch-file

我的一个脚本中有以下代码,但它似乎不可靠。似乎如果文件实际上小于1,它可能会失败。或者至少它对某人有用。我做错了什么或者有更好的方法吗?

简而言之,请检查file.txt是否为> 0:

for /f %%i in ("file.txt") do set size=%%~zi
    rem added THIS:  if not defined size set size=0
if %size% gtr 0 (
    type file.txt >> %FNAME%
) else (
    echo     No Data Found On System >>  %FNAME%
)

编辑:问题是使用上游更改的代码创建的。基本上它使得file.txt可能从未创建过。我在代码中将file.txt重命名为foobar.txt以复制问题。如果“如果未定义大小设置大小= 0”似乎解决了这个问题。

1 个答案:

答案 0 :(得分:4)

我唯一能想到的是文件不能存在,在这种情况下%%~zi扩展为空(不是0)。如果未定义大小,则可以通过明确将大小设置为0来轻松修复。

for /f %%i in ("file.txt") do set "size=%%~zi"
if not defined size set size=0
if %size% gtr 0 (
    type file.txt >> %FNAME%
) else (
    echo     No Data Found On System >>  %FNAME%
)