oracle 方法判断空,MS Windows 的BAT中判断文本文件为空的方法

1.判断文件中的数据行数,如果大于等于1,说明有数据。

2.判断是否有非空字符

3.是不是DOS命令有直接的函数来判断呢?

4.修改源程序,在没有数据需要写入的时候,不执行fopen

但以上方法中4是可行的,但考虑到一些实际情况,还是要从BAT文件上动手,这样是最小的改动,带来的风险小。其他方法均没有找到实现方法。

经过研究使用如下方法实现:

我们知道在Windows下的Dos下,有FIND这个命令:

D:>find/?

Searches for a text string in a file or files.

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

/VDisplays all lines NOT containing the specified string.

/CDisplays only the count of lines containing the string.

/NDisplays line numbers with the displayed lines.

/IIgnores the case of characters when searching for the string.

/OFF[LINE] Do not skip files with offline attribute set.

"string"Specifies the text string to find.

[drive:][path]filename

Specifies a file or files to search.

If a path is not specified, FIND searches the text typed at the prompt

or piped from another command.

我就想,空文件是什么字符也都没有的,而在我这里有数据的文件里肯定是有空格的。那我是否可以通过FIND找如果有空格的就是有数据的。

执行以下命令:

查找有空格的数据文件:

D:>find /c " " d:a.txt

---------- D:A.TXT: 15

查找没有数据的文件:

D:>find /c " " d:.txt

---------- D:B.TXT: 0

从以上文件发现,输出中会把查找到的个数以数字的形式显示出来。

那怎么获得这个数呢?

我观察到输出固定是有两个冒号。

那么就把输出内容再写入到一个临时文件temp123.txt中

可以通过以下命令获得数字

FOR /F "tokens=3,3 delims=:" %%i in (temp123.txt) do (set lv_cnt=%%i)

具体在BAT中的实现如下:

Set output_file=D:A.TXT

Set temp123=D:TEMP123.TXT

FIND /C " " %output_file %> %temp123%

FOR /F "tokens=3,3 delims=:" %%i in (%temp123%) do (set lv_cnt=%%i)

if %lv_cnt% EQU 0 (GOTO没有数据内容,到要去的地方)

if %lv_cnt% GTR 0 (GOTO有数据内容,到要去的地方)

---------------

如果你有更加简单的方法,不妨共享一下。^*^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值