我的一个脚本中有以下代码,但它似乎不可靠。似乎如果文件实际上小于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”似乎解决了这个问题。
答案 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%
)