bob*_*bob 1 windows batch-file
该文件的问题是它有时包含空行,因此大小不为零。我尝试了这个,但由于它有一个空行,所以它返回 1 而不是 0。有什么建议如何解决它吗?
set /a varTestPoints=0
for /f %%a in ('type "file.txt"^|find "" /v /c') do set /a varTestPoints=%%a
Run Code Online (Sandbox Code Playgroud)
尺寸可以通过以下方式检查
for %%a in ("file.txt") do echo %%~za
Run Code Online (Sandbox Code Playgroud)
其中%%~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
Run Code Online (Sandbox Code Playgroud)
如果for /f找不到包含数据的行,则会引发错误,可以使用&&和||条件执行运算符进行检查
请注意aschipfl 指出,在检查空行的原始代码中,for /f跳过以分号开头的行的默认行为将使文件中以;. 现在代码还通过两种不同的方式处理这种情况。
在第一个命令中,eol通过为其分配空列表或分隔符来禁用子句。
第二个命令为 分配一个空格eol。虽然看起来我们只是更改了有问题的字符,但当分for /f词器解析这些行时,该delims子句优先于eol(更多信息,请参见此处),因此在将空格视为分隔符之前,它们将被删除eol。
| 归档时间: |
|
| 查看次数: |
13886 次 |
| 最近记录: |