[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 15# 5i365
  1.   gc a.csv|%{if((gc b.csv) -match "^\d" -contains $_){"$_,已完成"}else{$_}}
复制代码
1

评分人数

    • 5i365: 技术牛X, 乐于帮忙技术 + 1

TOP

回复 16# for_flr


    我的a.csv 有3000行, b有200行, 执行时间有点长, 有能快点的方法吗? 批处理执行的很快

TOP

有,gc a.csv -readcount 0
|%{}处理改作for循环
你可以琢磨一下,我下班放假了 :lol

TOP

回复 18# for_flr


    感谢提醒,

不太懂foreach和for在这里怎么转换, 有路过的大侠, 帮试一下

TOP

还可以试试哈希表的方式
  1. $f=gc a.csv
  2. $a=@{}
  3. $rex={[int]($_ -replace '^(\d+),.*','$1')}
  4. $f[1..$f.count]|%{$a+=@{$(&$rex)=$_}}
  5. (gc b.csv)[1..$f.count]|%{if($a.contains($(&$rex))){$a[$(&$rex)]=$a[$(&$rex)]+',已完成'}}
  6. sc c.csv ($f[0],$(do{$a[++$bcc]}while($a[$bcc] -ne $null)))
复制代码
1

评分人数

    • 5i365: 高效, 乐于分享! 感谢!技术 + 1

TOP

回复 20# idwma


    牛X 这个执行速度快多了, 为什么?

TOP

回复 21# 5i365


    减少了循环次数

TOP

返回列表