无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 7864|回复: 15
打印 上一主题 下一主题

[求助] 批处理怎么查找txt文本里面的某个数字?

[复制链接]
1#
发表于 2018-1-23 22:32:43 | 显示全部楼层
@echo off
pushd %~dp0
for /f "tokens=2 delims==" %%a in ('type 1.txt ^| findstr /r /i "test=[0-9]"') do set "num=%%a"
if %num% gtr 500 if %num% lss 530 ipconfig
pause

点评

测试OK,但如果txt文本文档里面不是test=521,而是直接就是521AA呢?  详情 回复 发表于 2018-1-23 22:52
提示此处不应有500  详情 回复 发表于 2018-1-23 22:44
回复

使用道具 举报

2#
发表于 2018-1-23 22:56:06 | 显示全部楼层
熄灭的烟 发表于 2018-1-23 22:52
测试OK,但如果txt文本文档里面不是test=521,而是直接就是521AA呢?

你是自己学着玩儿??

建议看一下set命令

点评

1.txt文本文档内容为:521 AA。 请问批处理要怎么查找这个txt文本里面的521 AA这行,然后判断大于500,小于530就执行ipconfig命令,条件不成立就跳开执行批处理下一行命令。 521 AA(521跟AA中间有空格) 各位  详情 回复 发表于 2018-1-23 23:29
不是学着玩,是要弄个批处理检索文件。521AA的问题我已经解决了。但是卡在521 AA,521跟AA中间有个空格我就不知道怎么弄了。N大在帮我看看怎么改可以识别空格  详情 回复 发表于 2018-1-23 23:28
回复

使用道具 举报

3#
发表于 2018-1-23 23:47:06 来自手机 | 显示全部楼层
熄灭的烟 发表于 2018-1-23 23:28
不是学着玩,是要弄个批处理检索文件。521AA的问题我已经解决了。但是卡在521 AA,521跟AA中间有个空格我 ...

"tokens=1,2"
delims不要了

如果你只要前面的数字更简单
for /f %%a in (1.txt) do set numb=%%a

点评

Microsoft DiskPart 版本 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. 在计算机上: YXD--1709221625 DISKPART> 磁盘 ### 状态 大小 可用 Dyn Gpt -------- ------  详情 回复 发表于 2018-1-24 15:05
回复

使用道具 举报

4#
发表于 2018-1-24 19:24:25 | 显示全部楼层
熄灭的烟 发表于 2018-1-24 15:05
Microsoft DiskPart 版本 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
在计算机上:  ...

不同的文本,处理方法也不同。

一般而言,处理文本常用的命令有:for set more type find findstr,for set findstr复杂一点,findstr还会涉及一点儿正则表达式

对于上面的文本:

for /f "tokens=3,4" %%i in ('find /i "GB" test.txt') do set "disksize=%%i %%j"

不过不要单位:

for /f "tokens=3" %%i in ('find /i "GB" test.txt') do set "disksize=%%i"

点评

多谢N大,已经成功搞定了。原来要把判断变量num改成disksize就可以了。 非常感谢N大,帮我解决了问题,同时又教会了我很多。  详情 回复 发表于 2018-1-26 11:41
回复

使用道具 举报

5#
发表于 2018-1-25 20:25:39 | 显示全部楼层
熄灭的烟 发表于 2018-1-25 17:27
@echo off
pushd %~dp0
for /f "tokens=3,4" %%i in ('find /i "GB" test.txt') do set "disksize=%%i %% ...

查错了,是4,5

点评

研究了下,能取到数字了。但是到了if %num% gtr 500 if %num% lss 530 ipconfig 判断这里就一闪而过了。请问这里要怎么改啊?  详情 回复 发表于 2018-1-26 11:24
@echo on pushd %~dp0 for /f "tokens=4,5" %%i in ('find /i "GB" ok.txt') do set "disksize=%%i %%j" if %num% gtr 500 if %num% lss 530 ipconfig pause 大哥,这样也不行啊。还是运行后一闪而过。  详情 回复 发表于 2018-1-26 11:08
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-8 21:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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