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

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

有很多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
复制代码

两个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

评分人数

TOP

返回列表