[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
不是最佳效率。
  1. @echo off & cd /d "%~dp0"
  2. setlocal EnableDelayedExpansion
  3. echo data1 data2 data3 data4 data5 data6 data7 data8 time
  4. for /f "tokens=1-4 delims= " %%a in (ref.txt) do (
  5. set "n1=%%a" & set "n2=%%b" & set "n3=%%c" & set "n4=%%d"
  6. set "n2=!n2:-=/!"
  7. echo %%a|findstr /i "data[1-8]">nul && (
  8. set "VarValue=!VarValue! !n4:.000000=!"
  9. if /i "!n1:~1,-1!"=="data8" (
  10. echo !VarValue:~1! !n2:~1! !n3:~0,-1!
  11. set "VarValue="
  12. )
  13. )
  14. )
  15. pause
复制代码
===若文件固定,改一下速度很快。自行添加重定向以输出到csv。EXCEL中导入并以TAB键分格。===

TOP

回复 3# shaohua

重定向应该会的。留着给你自添加,可以随意写。
   第 4 行 行尾加 ">ref.csv" 不要引号
   第 5 行 行首加 "(" 不要引号
   第 15 行 行尾加 ")>>ref.csv" 不要引号
=================================
如果为 WIN7 及以上系统用下面这个更好。
  1. @echo off & cd /d "%~dp0"
  2. echo data1 data2 data3 data4 data5 data6 data7 data8 time>ref.csv
  3. PowerShell "Foreach ($file in GC '.\ref.txt') {$str=$file -Replace '\s+',' ' -Replace '\"','';if ($str.Split(' ')[0] -match 'data[1-8]') {$name=$name + ' ' + ($str.Split(' ')[3]).Split('.')[0];if (($str.Split(' ')[0]).SubString(4,1) -eq 8) {$Line=$name.TrimStart()+' '+($str.Split(' ')[1]).Replace('-','/')+' '+$str.Split(' ')[2];AC \".\ref.csv\" -Value \"$Line\" -force;$name='';}}}"
  4. pause
复制代码
==========================

TOP

回复 7# shaohua

本来就是9列显示的。为何还要9列?

TOP

返回列表