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

老师  提取出来的内容,输出第一个txt行数显示正确,第二个开始就会多一行,时间这行就会显示2次。第3个 4个等都会多出时间一行。

车      :   龙台站
IC卡车牌:   渝A02F6T
时间    :   2024-05-23T05:54:00
入口车牌:   渝A02F6T
OBU车牌:   渝A02F6T
出口车牌:   渝A02F6T
时间    :   2024-05-23T05:54:00

TOP

回复 16# licunwei


    你查看原始数据,是不是多了一个

TOP

回复 17# newswan
谢谢,源文件有2个数据。txt文档内时间能否显示到第二行呢,让车牌显示3-6行。

TOP

回复 18# licunwei
  1. $ht = [Ordered]@{
  2. CPCIssueOrg = "车      :"
  3. EnTime      = "时间    :"
  4. CPUVlp      = "IC卡车牌:"
  5. EnVLP       = "入口车牌:"
  6. OBUVlp      = "OBU 车牌:"
  7. VLP         = "出口车牌:"
  8. }
  9. $str = $ht.values -join "`n"
  10. function get-info() {
  11. param(
  12. [string]$filexml ,
  13. [string]$filetxt
  14. )
  15. [xml]$xml = Get-Content -Path $filexml -Encoding "UTF8"
  16. $xml.datas.data.attribute | ForEach-Object {
  17. if ( $_.name -eq "msg" ) { $string = $_.value }
  18. }
  19. $string = $string.Substring(1,$string.length-2)
  20. $string = $string -replace '(?<="),',"`n"
  21. $string = $string -replace '"(\w+)":"(.*)"',"`$1`t`$2"
  22. $as = $string -split "`n"
  23. $as | ForEach-Object {
  24. $a = $_ -split "`t"
  25. if ( $ht[$a[0]] ) {
  26. $str = $str -replace ( "(?m)^" + $ht[$a[0]] + ".*$" ), ( "{0}   {1}" -f $ht[$a[0]] , $a[1] )
  27. }
  28. }
  29. $str | Out-File $filetxt
  30. }
  31. $Path = "C:\Users\admin\Desktop"
  32. Get-ChildItem -Path $Path -Filter "*.xml" | ForEach-Object {
  33. get-info $_.FullName ( $_.DirectoryName + "\" + $_.BaseName + ".txt")
  34. }
复制代码
1

评分人数

TOP

回复 19# newswan


    老师 如果我要新增提取项,比如说增加了车道号 ,需要怎么添加命令呢,谢谢了。
        CPCIssueOrg = "车      :"
        lanID         ="车道号  :"
        EnTime      = "时间    :"
        CPUVlp      = "IC卡车牌:"
        EnVLP       = "入口车牌:"
        OBUVlp      = "OBU 车牌:"
        VLP         = "出口车牌:"

TOP

回复 20# licunwei
已经学会怎么添加提取项了。

TOP

回复 19# newswan

老师,我想知道你是添加的哪一条命令锁定的时间永远输出显示为第二行。

TOP

回复 22# licunwei

前面那一段,包含了顺序

TOP

返回列表