Board logo

标题: [文本处理] 批处理如何以文本內容分別輸出日期加文件類型? [打印本页]

作者: jamiemkin    时间: 2012-10-2 17:10     标题: 批处理如何以文本內容分別輸出日期加文件類型?

[操作超时>22号文件] 2407099049----e161831
[操作超时>12号文件] 2405820945----h356497
[操作失效>08号文件] 2407618246----i153751
[操作超时>12号文件] 2406284585----p164457
[操作失效>12号文件] 2407936425----w163642
[操作超时>22号文件] 2405417532----e605044
[操作失效>08号文件] 2406656676----t602199
[操作超时>08号文件] 2405513226----o507852
[操作超时>22号文件] 2649865178----j565541
[操作错误>08号文件] 2650139582----j851505
[操作错误>08号文件] 2650169177----q284537
[操作超时>08号文件] 2650259882----j065376
[操作超时>22号文件] 2650289282----q673321
[操作超时>08号文件] 2650709980----u363397
[操作错误>22号文件] 2650737178----p724607
[操作超时>12号文件] 2650850082----a098473
[操作错误>22号文件] 2650943980----m398008

我有一个A.txt的文件如上 想以操作錯誤記錄及文件代号輸出文件 文件名要能帶日期 例如 20121002-08号文件-操作错误.txt 文件內容為後面的使用者及代号 如 2650709980----u363397  以此類推 如果有12个文件号是操作错误就會生成12个文件 不同的操作記錄再生長另外的文件 求高手幫忙~ 想了二天搞不出來
作者: apang    时间: 2012-10-2 18:44

假设系统日期格式yyyy/mm/dd或yyyy-mm-dd
  1. @echo off
  2. set "d=%date:~,10%"
  3. set "d=%d:/=%"
  4. set "d=%d:-=%"
  5. for /f "tokens=1-3 delims=[]> " %%a in (a.txt) do (
  6.   echo,%%c>>%d%-%%b-%%a.txt
  7. )
复制代码

作者: jamiemkin    时间: 2012-10-2 20:31

本帖最后由 jamiemkin 于 2012-10-2 20:32 编辑
假设系统日期格式yyyy/mm/dd或yyyy-mm-dd
apang 发表于 2012-10-2 18:44

真是無言了~~ 我想得會很復雜的代碼~ 大大幾行代碼解決了~ 謝謝~

怎麼加不了分了?
作者: jamiemkin    时间: 2012-10-2 21:24

假设系统日期格式yyyy/mm/dd或yyyy-mm-dd
apang 发表于 2012-10-2 18:44


大大~~剛剛才發現 生成的文件行首都會有一个空格 ~ 那个應該改那裡? 還有一个小疑問~ 如果我只想保留 -号後的部份又該怎麼修改代碼(這部份沒實質作用~ 只是想學一下)
作者: apang    时间: 2012-10-2 22:15

回复 4# jamiemkin

你应该学习一下"FOR从入门到精通",论坛就有。

你是不是把"Tokens=1-3 delims=[]> "中[]>后的空格去掉了?
作者: jamiemkin    时间: 2012-10-2 22:25

回复  jamiemkin

你应该学习一下"FOR从入门到精通",论坛就有。

你是不是把"Tokens=1-3 delims=[]>  ...
apang 发表于 2012-10-2 22:15

嗯~~ 謝謝大大指教~~ 剛試著操作識別符号~ 沒留意到空格也是有作用的~ 我再研究研究~ 那看來如果要只保留-号後面的部份就是要倒著讀取內容?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2