标题: [文本处理] [已解决]批处理如何在文本中按每行分别提取值? [打印本页]
作者: 539956485 时间: 2012-11-16 20:21 标题: [已解决]批处理如何在文本中按每行分别提取值?
test.txt中有如下值- 1453
- 2453
- 348753
- 47835
- 57
- 3875
- 6573
- 4532
- 74532
- 8753
- 97853
- 783
复制代码
如何把每行值分别赋值给变量
作者: tmplinshi 时间: 2012-11-16 20:43
本帖最后由 tmplinshi 于 2012-11-16 21:35 编辑
- @echo off
- for /f "delims=: tokens=1,*" %%a in (' findstr /n .* test.txt ') do (
- set #%%a=%%b
- )
-
- set #
- pause
复制代码
作者: 539956485 时间: 2012-11-17 16:00
回复 2# tmplinshi
能解释下代码么
for语句提取值我懂 为什么要用:来断开复制代码
复制代码
复制代码
这三段代码是什么意思?
作者: tmplinshi 时间: 2012-11-17 16:20
回复 tmplinshi
能解释下代码么
for语句提取值我懂 为什么要用:来断开这三段代码是什么意思?
539956485 发表于 2012-11-17 16:00
e:\我的文档\桌面>findstr /n .* test.txt
1:1453
2:2453
3:348753
...省略
/n 是显示行号。用冒号作为分隔符,左边作为变量名,右边为值。
set #%%a=%%b
# 只是随便一个字符,直接 set %%a=%%b 也是可以。其实我是为了给你看运行结果,用 set # 来显示 # 开头的变量。
作者: 539956485 时间: 2012-11-17 17:13
回复 4# tmplinshi
那 find/n 和文件名之间为什么要加复制代码
作者: tmplinshi 时间: 2012-11-17 17:31
回复 tmplinshi
那 find/n 和文件名之间为什么要加
539956485 发表于 2012-11-17 17:13
必须指定要查找的字符。.* 表示任意个数的任意字符。
作者: 539956485 时间: 2012-11-17 17:57
回复 6# tmplinshi
解决问题 ,非常感谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |