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

[文本处理] 【已解决】求批量提取文件内容BAT代码?

[复制链接]
 楼主| 发表于 2024-4-15 15:13:12 | 显示全部楼层
回复 15# 77七
两个代码删除第二行 chcp 65001 >nul ,运行成功。
由于代码帅选规则,txt文件必须和试样文件相同。
 楼主| 发表于 2024-4-15 15:30:55 | 显示全部楼层
回复 14# aloha20200628

谢谢,试验成功。开始输出不对,后来发现是 dir /b/s/a-d还输出了子目录下的txt文件,改成 dir /b/a-d就自输出当前目录。
发表于 2024-4-15 19:39:22 | 显示全部楼层
回复 12# meiszp
不通用,仅针对样本写的
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2*delims=:" %%i in ('"findstr /n . *.txt|findstr /c:"txt:5:" /c:"excluding mass coefficients""') do (
  3.      if defined _%%i (set $%%i=%%j) else for /f %%k in ("%%k") do set "_%%i=%%~xnk"
  4. )
  5. (
  6.      for /f "tokens=1,2,4,6*delims=:=[" %%a in ('findstr /inrc:"\<MAIN .*\[NS*/M\]$"  *.txt') do (
  7.           if %%b gtr !$%%a! (
  8.               if !num! == !_%%a! (
  9.                   if defined str (set str=!str!        %%c        %%d)else set str=!num!        %%c        %%d
  10.               ) else echo;!str: =!&set num=!_%%a!&set str=!num!        %%c        %%d
  11.           ) else if not defined num set num=!_%%a!
  12.      )
  13.      echo;!str: =!
  14. )>out.log
  15. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-4-16 09:20:27 | 显示全部楼层
回复 18# terse

谢谢!
发表于 2024-4-16 09:54:14 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2024-4-16 17:13 编辑
  1. @echo off
  2. (for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  3.     setlocal enabledelayedexpansion
  4.     for /f "tokens=1-3,5,11" %%a in ('type "%%i"') do (
  5.         set /a n+=1
  6.         if !n! equ 4 (
  7.             set str=%%a
  8.         ) else if "%%a %%b %%c"=="excluding mass coefficients" (
  9.             set m=0
  10.         ) else if defined m (
  11.             set /a m+=1
  12.             set str=!str!        %%d        %%e
  13.             if !m! equ 2 (
  14.                 echo,!str!
  15.                 set m=
  16.             )
  17.         )
  18.     )
  19.     endlocal
  20. ))>out.txt
  21. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-4-16 16:51:12 | 显示全部楼层
回复 20# qixiaobin0715

谢谢热心回复!
请问echo,!str!   echo后面的“,”有什么作用,好像去掉也可以的。

你的代码cad窗口输出了结果 ,如果同时输出out.txt文件呢?

循环最外面加了)>out.txt,cmd窗口又不输出了。
发表于 2024-4-16 17:13:45 | 显示全部楼层
echo显示内容时,后面加“空格或,或;或.或/.......”均可。
20楼代码已修改
 楼主| 发表于 2024-4-16 17:18:41 | 显示全部楼层
回复 22# qixiaobin0715

谢谢!搜索了下,屏幕和文件同时显示,需要使用type out.txt
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 01:19 , Processed in 0.021507 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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