找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33385|回复: 13

[文件操作] 批处理如何判断txt文本文件为空/0字节

[复制链接]
发表于 2016-10-7 10:07:02 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-10-7 12:49 编辑

如题。
因为是for配合echo创建的txt文件,所以如果是空内容的话有可能带有一个回车符号。如何判断呢,如果是空就删除它。
想到的是判断大小是否为0kb?不知道是否还有其它方法?

评分

参与人数 1PB -4 收起 理由
pcl_test -4 发帖前先使用论坛搜索

查看全部评分

发表于 2016-10-7 10:32:38 | 显示全部楼层
把空跟有改成你要的删除命令即可。
  1. @echo off&(for /f %%a in (1.txt) do (set i=1))&set/a 1/i 2>NUL&&echo 有||echo 空&set/p=
复制代码

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 +1

查看全部评分

发表于 2016-10-7 10:43:11 | 显示全部楼层
带回车符的话,就不是空文件,因为内容有一个回车符 (废话)。
因此文件大小也不是 0 字节。

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 +1

查看全部评分

 楼主| 发表于 2016-10-7 10:57:31 | 显示全部楼层
回复 2# happy886rr


    多谢!
 楼主| 发表于 2016-10-7 10:58:04 | 显示全部楼层
回复 3# DiamondbacK


    单有一个回车,我看到文件大小还是显示0字节呀
发表于 2016-10-7 11:03:40 | 显示全部楼层
回复 5# freesoft00


两种可能:
1. 文件大小不是 0 字节,你看成了 0 字节。
2. 文件不含回车符,你以为含有回车符。

按常识判断,2 的可能性更大。
发表于 2016-10-7 11:13:53 | 显示全部楼层
  1. findstr "." t.txt||echo 文本为空
复制代码
  1. findstr /rc:"." /rc:"$" t.txt||echo 文本为空,且不含回车符
复制代码
除非用 more 或 find 自动将回车符补齐,否则用 findstr 无法检测只含换行符的文本

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 +1

查看全部评分

 楼主| 发表于 2016-10-7 12:16:03 | 显示全部楼层
本帖最后由 pcl_test 于 2016-10-7 13:01 编辑

回复 6# DiamondbacK
  1. @echo off
  2. pushd %~dp0
  3. (for /f "delims=" %%i in ('dir /a-d /b F:\www') do (
  4. echo %%i
  5. ))>2.txt
  6. pause
复制代码
f盘的空www文件夹。批处理运行在当前目录生成的2.txt是0字节,这个属于一个回车符号吧?(不是太懂,看2.txt有一个空行)


in ('dir /a-d /b F:\www^|find /i /v "sssss"')
忘记说了,完整的代码中for中dir后使用了find过滤了一些内容。不知道这个影响不影响?如果影响结果,把find改更findstr也可以。
发表于 2016-10-7 12:56:50 | 显示全部楼层
回复 2# happy886rr
此法对于0字节判断并不妥,可用%%~za
发表于 2016-10-7 13:00:00 | 显示全部楼层
回复 8# freesoft00
就跟新建一个文本文件一样,并没有回车符
发表于 2016-10-7 13:01:26 | 显示全部楼层
回复 10# pcl_test
确实,但是他说有的文件可能只有一个回车符,这样的文件也要归为空文件,也要删除。
发表于 2016-10-7 13:17:32 | 显示全部楼层
回复 12# happy886rr

嗯,实际他并不知道还有其他字符能让文本看起来是空白的,但并不是0字节
 楼主| 发表于 2016-10-7 14:19:18 | 显示全部楼层
回复 11# happy886rr


    就是for+echo创建的空文件,因为我看有一空行,以为是一个回车符。
发表于 2016-10-8 07:17:56 | 显示全部楼层
回复 3# DiamondbacK

呵呵,表示没毛病
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:25 , Processed in 0.024684 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表