[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 hfxiang 于 2023-3-11 10:22 编辑

如果工作文件夹 "d:\Data\01\"及"d:\Data\02\"中无其它无关的.txt文件,为避免terse大神7楼代码第3行的总长度有可能大于8192字节造成出错(主要是因为%f%的长度不过预知,有可能会造成过长),可把代码再简化如下(整个脚本只有1行):
  1. @gawk -F"=" "ARGIND>1{if(b[$1]){a[ARGIND]=a[ARGIND]==\"\"?$2:a[ARGIND] \"\n\" $2;next}}{b[$0]++}END{for(i=2;i<=ARGIND;i++){ if(a[i]){f=ARGV[i];sub(/^d:/,\"e:\",f);print(a[i])>f}}}" "e:\Data\XXX.txt" d:\Data\01\*.txt d:\Data\02\*.txt
复制代码
1

评分人数

TOP

回复 10# 思想之翼

试试以下脚本(针对新的要求,把“sub(/^d:/,\"e:\",f)”改为“sub(/^d:\\HY/,\"e:\\HY\\01\",f)”):
  1. @gawk -F"=" "ARGIND>1{if(b[$1]){a[ARGIND]=a[ARGIND]==\"\"?$2:a[ARGIND] \"\n\" $2;next}}{b[$0]++}END{for(i=2;i<=ARGIND;i++){ if(a[i]){f=ARGV[i];sub(/^d:\\HY/,\"e:\\HY\\01\",f);print(a[i])>f}}}" "e:\ZD\01\000001\000001_1.txt" d:\HY\000001\000001_1.txt
复制代码
1

评分人数

TOP

返回列表