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

[文本处理] [已解决]批处理提取固定位置数据,请大神们给个思路

[复制链接]
发表于 2020-9-27 21:49:12 | 显示全部楼层 |阅读模式
有很多pdbqt格式文档,内容格式都一致,如下,现需要提取每一个文档中固定位置中数据保存为CSV(取文件名为列名,分别取第二行和最后一行第二列数据)
  1. REMARK  Name =
  2. REMARK  11 active torsions:
  3. REMARK  status:
  4. .
  5. .
  6. .
  7. .
  8. .
  9. .

  10. ENDBRANCH  16  19
  11. ENDBRANCH  15  16
  12. ENDBRANCH  12  15
  13. ENDBRANCH   1  12
  14. TORSDOF 9
复制代码
琢磨了一个批处理代码,貌似提取不到想要的数据,请大神给一个思路,先谢谢了
  1. @echo off
  2. echo Name,Torsions,TORSDOF>>1.csv

  3. for /f "skip=1 tokens=2 delims=" %%i in ('dir/b  *.pdbqt') do (
  4. set/p a=<"%%~i"
  5. )
  6. for /f "tokens=2 delims=," %%j in ('dir/b *.pdbqt') do (
  7. set/p b=<"%%~j"
  8. )
  9. echo %%~ni,!a!,!b!>>1.csv
复制代码
发表于 2020-9-27 22:45:14 | 显示全部楼层
两个for,一个读文件列表,一个处理文件内容
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (
  4.         for %%i in (*.pdbqt) do (
  5.                 set /p="%%i,"<nul
  6.                 set "last="
  7.                 for /f "usebackq skip=1 tokens=2" %%a in ("%%i") do (
  8.                         if "!last!"=="" set /p="%%a,"<nul
  9.                         set "last=%%a"
  10.                 )
  11.                 echo !last!
  12.         )
  13. )>"1.csv"
  14. type 1.csv
  15. echo.
  16. pause&exit
复制代码

评分

参与人数 2技术 +2 收起 理由
dailyad + 1 太感谢了!!!!
Batcher + 1 感谢分享

查看全部评分

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

本版积分规则

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

GMT+8, 2026-3-20 04:28 , Processed in 0.018228 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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