无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5759|回复: 9
打印 上一主题 下一主题

[求助] 检测文本的批处理

[复制链接]
跳转到指定楼层
1#
发表于 2020-7-13 16:55:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
需要是这样的。
我用批处理命令检测系统,有没有问题都会生成一个以日期命名的%date:~0,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%%time:~6,2%".txt
没有问题,这个文件是空的,有问题里面就有内容。
如果没有内容就提示  没有错误
如果有内容就提示 有错误。

这个判断txt文本有没有内容的判断怎么写。一直不写批处理都忘光了。
开始想使用dir if 判断文件大小,好像没有成功,
type txt这个文本,然后再判断?

2#
发表于 2020-7-13 17:37:52 | 只看该作者
本帖最后由 2010hook 于 2020-7-13 21:28 编辑

比较数值大小,不该带双引号。
  1. @echo off
  2. for %%a in ("%~f0") do ( set "var=%%~za")
  3. if %var% equ 0 echo 没有错误
  4. pause
复制代码

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

3#
发表于 2020-7-13 19:25:52 | 只看该作者
你这确定忘得挺光的。。。

  1. @echo off
  2. pushd %~dp0

  3. ::不使用find,多行空格算文件内容为空
  4. for /f "delims=" %%a in (txt.txt) do if not defined txtstr set "txtstr=%%a" && goto next

  5. :next
  6. if not defined txtstr (echo txt.txt文件内容为空) else echo txt.txt文件内容非空

  7. ::使用find,多行空格算文件内容非空
  8. find "" /v txt.txt >nul 2>&1
  9. if %errorlevel%==1 (echo txt.txt文件内容为空) else echo txt.txt文件内容非空
  10. pause
复制代码

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

4#
 楼主| 发表于 2020-7-13 19:53:21 | 只看该作者
东西不用就还回去了。
搜索了一下,以前问过这个问题
  1. for %%a in ("1.txt") do (
  2.     if "%%~za" equ "0" (
  3.         goto noerr
  4.     ) else (
  5.         goto err
  6.     )

  7. )
复制代码
  1. findstr "." 1.txt>nul 2>nul&&goto err||goto noerr
复制代码
回复

使用道具 举报

5#
发表于 2020-7-13 21:26:35 | 只看该作者
本帖最后由 2010hook 于 2020-7-13 22:20 编辑

比较数值大小时,如果是equ或neq,可以用带双引号,视作普通字符串。但最好不要这么使用,否则大于小于是无法比较的,导致结果错误。

点评

后来我也发现了这个问题,不带反而更准确  详情 回复 发表于 2020-7-14 08:17
好的。 原来的代码没有改直接贴上来了。 回头把双引号去掉。  详情 回复 发表于 2020-7-13 21:51
回复

使用道具 举报

6#
 楼主| 发表于 2020-7-13 21:51:10 | 只看该作者
2010hook 发表于 2020-7-13 21:26
比较数值大小时,如果“equ”或“neq”,可以用带双引号,视作普通字符串。但最好不要这么使用,否则大于小 ...

好的。
原来的代码没有改直接贴上来了。
回头把双引号去掉。
回复

使用道具 举报

7#
发表于 2020-7-14 08:17:19 来自手机 | 只看该作者
2010hook 发表于 2020-7-13 21:26
比较数值大小时,如果是equ或neq,可以用带双引号,视作普通字符串。但最好不要这么使用,否则大于小于是无 ...

后来我也发现了这个问题,不带反而更准确
回复

使用道具 举报

8#
发表于 2020-7-15 19:55:12 | 只看该作者
我比较简单粗暴
type 1.txt |findstr "."
if errorlevel 1 echo 没有错误!&&pause
if errorlevel 0 echo 有错误!&&pause

评分

参与人数 1无忧币 +5 收起 理由
freesoft00 + 5

查看全部评分

回复

使用道具 举报

9#
发表于 2021-2-26 23:04:08 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

10#
发表于 2021-2-28 14:29:45 | 只看该作者
好啊啊啊啊啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 20:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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