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

[问题求助] PowerShell怎样匹配字段?

[复制链接]
发表于 2023-7-20 09:37:26 | 显示全部楼层 |阅读模式
idwma哥   谢谢解答在上题中是按列数匹配

那么如果不是按列数匹配情况
转为
如果在有企业字段这行中, ,   而是匹配这种格式字段  **:**:**:**:**:**    其中有5个:隔开    其*星号可视为是大字母数字    意思是在有企业字段这一行中, 检索出匹配这种格式字段, 不论他在那一位置
  1. #@&cls&powershell "type %~s0|out-string|iex"&exit
  2. $a=gc -readcount 0 D:\UTF16.txt
  3. $b=(($a[-1..-500] -match '企业 ')[0] -split ' ')[6]
  4. $f=0
  5. sc D:\out.txt $(foreach($i in $a){if(($f -eq 0) -and $i -match "简名:\S+\s$b"){$i;$f=1}elseif(($f -eq 1) -and $i -match '已执行'){$f=0;$i,''}elseif($f -eq 1){$i}})
复制代码

  1. 偿试过各种修改, 都似乎不对 ,  
  2. $b=($a[-1..-500] -match '企业 ')[0] -replace '([0-9A-Z]{1,2}\:){5}[0-9A-Z]{1,2}'
复制代码
发表于 2023-7-20 16:59:49 | 显示全部楼层
  1. #@&cls&powershell "type %~s0|out-string|iex"&exit
  2. $a=gc -readcount 0 D:\UTF16.txt
  3. $b=(($a[-1..-500] -match '企业 ')[0] -replace '(?i).*?(([0-9A-Z]{1,2}:){5}[0-9A-Z]{1,2}).*','$1'
  4. $f=0
  5. sc D:\out.txt $(foreach($i in $a){if(($f -eq 0) -and $i -match "简名:\s*$b"){$i;$f=1}elseif(($f -eq 1) -and $i -match '已执行'){$f=0;$i,''}elseif($f -eq 1){$i}})
复制代码
 楼主| 发表于 2023-7-20 17:47:19 | 显示全部楼层
本帖最后由 娜美 于 2023-7-20 18:08 编辑

回复 2# idwma

idwma哥
偿试执行一下会返回提示
  1. iex : 所在位置 行:3 字符: 95
  2. + ... '企业 ')[0] -replace '(?i).*?(([0-9A-Z]{1,2}:){5}[0-9A-Z]{1,2}).*','$1'
  3. +                                                                          ~
  4. 表达式中缺少右“)”。
  5. 所在位置 行:4 字符: 1
  6. + $f=0
  7. + ~~~~
  8. 表达式或语句中包含意外的标记“$f=0”。
  9. 所在位置 行:1 字符: 53
  10. +                                                     ~~~
  11.     + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
  12.     + FullyQualifiedErrorId : MissingEndParenthesisInExpression,Microsoft.PowerShell.Commands.InvokeExpressionCommand
复制代码
发表于 2023-7-20 18:02:11 | 显示全部楼层
多了一括号
  1. $b=($a[-1..-500] -match '企业 ')[0] -replace '(?i).*?(([0-9A-Z]{1,2}:){5}[0-9A-Z]{1,2}).*','$1'
复制代码
 楼主| 发表于 2023-7-20 18:18:09 | 显示全部楼层
回复 4# idwma


    原来如此,   Sorry怪我不仔细检查一下,    这次正确了   多谢idwma哥哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 05:45 , Processed in 0.017669 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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