[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样找自定义数值所在的行的内容?

各位大侠
我想自定义一个数值,然后在数据文本中,找到数值所在的行,并把那一行的数据,导出写进自定义数值命名的文本中的第一行。
数据文本:
10,0.1871 ,1,1,面,4,耕
10,1.1619 ,1,2,面,2,耕
10,0.8063 ,1,3,面,4,耕
10,1.0766 ,1,4,面,6,耕
10,0.1043 ,1,5,面,4,耕
10,0.7868 ,1,6,面,7,耕
10,0.3033 ,1,7,面,4,耕
10,0.5889 ,1,8,面,3,耕
10,0.7498 ,1,9,面,4,耕
...
...
比如自定义数值为 8 ,就把  8,面 所在行的数据导出,写进8.txt的第一行。(8.txt文本有内容)
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

是这意思吗?
  1. @echo off
  2. set /p Input=输入:
  3. (find /i "%Input%,面"<"数据.txt"
  4. type %Input%.txt)>$
  5. move $ %Input%.txt
复制代码
1

评分人数

TOP

  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. Set "File=E:\Scrypt_T\Bactsh\String.txt"
  3. Set "Scring=8,面"
  4. For /F "tokens=*" %%A In (%File%) Do (
  5. Set "Scr=%%A"
  6. Set "Scr=!Scr:%Scring%=!"
  7. If Not "!Scr!" == "%%A" Echo %%A
  8. )
  9. Pause>Nul
复制代码
用这个就能找出你要的数据了,怎么输出不用我写了吧。
1

评分人数

TOP

回复 2# apang


    嗯,是这样,谢谢啦

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p aa=输入字符:
  4. for /f "tokens=*" %%i in ('findstr "!aa!,面" 1.txt') do (
  5. echo %%i>>!aa!.txt
  6. )
复制代码
vbs
  1. option explicit
  2. dim str, a, b, fso, txt, txt1, re
  3. str = inputbox("输入字符")
  4. set fso = createobject("scripting.filesystemobject")
  5. set txt = fso.opentextfile("1.txt")
  6. set txt1 = fso.createtextfile(str & ".txt")
  7. for each a in fun_re(txt.readall)
  8. txt1.writeline a
  9. next
  10. function fun_re(str1)
  11. set re = new regexp
  12. re.pattern = ".*" & str & ",面" & ".*"
  13. re.global = true
  14. set fun_re = re.execute(str1)
  15. end function
复制代码
1

评分人数

TOP

回复 5# poter


    貌似楼主不要求创建新文件
无聊中,偶也来个vbs,不要笑。。。
  1. Input = InputBox("输入数字:",,"8")
  2. If Input = "" Then Wscript.Quit
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. Set File = FSO.OpenTextFile("数据.txt",1)
  5. Str = FSO.OpenTextFile(Input & ".txt",1).ReadAll
  6. Do Until File.AtEndOfStream
  7.    Text = File.ReadLine
  8.    If Replace(Text,Input & ",面","") <> Text Then
  9.       Str = Text & vbCrLf & Str :Exit Do
  10.    End If
  11. Loop
  12. FSO.OpenTextFile(Input & ".txt",2).Write Str
  13. MsgBox "OK"
复制代码
1

评分人数

TOP

返回列表