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

看了问题已解决,来问一下,这样写好像没有确保这个XXX文件里的全部赋值了哦

TOP

回复 6# 思想之翼
把赋值txt放后面处理 然后加个判断
根据你的示例 简化一下代码 不用DIR的话 就手动加一下处理的文件  "e:\Data\XXX.txt"文件放第一个处理
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (01 02) do for /f "tokens=*" %%b in ('dir /s/a-d /b "d:\Data\%%a\001_?.txt"') do set f=!f! "%%b"
  3. 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" %f%
  4. pause
复制代码
1

评分人数

TOP

回复 9# 思想之翼
是不是这样?
  1. @echo off&setlocal enabledelayedexpansion
  2. rem 文件编码为ansl
  3. for /l %%a in (1,1,1000) do (
  4.      set "p=00000%%a"
  5.      set p=!p:~-6!
  6.      if exist "d:\HY\!p!\" (
  7.         for /l %%b in (1,1,7) do (
  8.              if exist "d:\HY\!p!\!p!_%%b.txt" (
  9.                 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:\\HY\\0%%b\\\\\",f);print(a[i])>f}}}" "e:\ZD\01\!p!\!p!_%%b.txt" "d:\HY\!p!\!p!_%%b.txt"
  10.             )
  11.        )
  12.     )
  13. )
  14. pause
复制代码
1

评分人数

TOP

返回列表