文件的问题是它有时包含一个空行,因此大小不为零。我试过了,但是因为它有一个空行,所以它返回1而不是0。如何解决这个问题有何建议?
set /a varTestPoints=0
for /f %%a in ('type "file.txt"^|find "" /v /c') do set /a varTestPoints=%%a
尺寸可以用
for %%a in ("file.txt") do echo %%~za
%%~za
所引用文件的大小在哪里%%a
要测试文件是否仅包含空白行,可以使用以下任何命令
(for /f usebackq^ eol^= %%a in ("file.txt") do break) && echo has data || echo empty
(for /f "usebackq eol= " %%a in ("file.txt") do break) && echo has data || echo empty
如果for /f
找不到包含数据的行,则会引发错误,可以使用&&
和||
条件执行运算符进行检查
请注意aschipfl点,在检查空白行的原始代码中,默认行为for /f
是跳过以分号开头的行,这会使测试在以开头的文件的行中失败;
。现在,代码还通过两种不同的方式处理这种情况。
在第一个命令中,通过为eol
子句分配空列表或定界符来禁用子句。
第二个命令为分配一个空格eol
。虽然看起来我们只是简单地更改了有问题的字符,但是当由for /f
标记符解析行时,该delims
子句优先于eol
(在此处有更多信息),因此在将空格视为之前将其删除为定界符eol
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句