1

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

4

1 回答 1

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%
)
于 2013-06-20T19:14:52.413 回答