[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. pushd "%~dp0"
  3. rem下面两句指定要处理的文件,请根据需要自行修改!
  4. set file1=wellhead_422.txt
  5. set file2=wellhead_all.txt
  6. for /f "tokens=1*" %%a  in (%file1%) do if not "%%a"=="" set %%a=1
  7. (for /f "tokens=1*" %%A in (%file2%) do if defined %%A echo %%A %%B) >"new_%file1%"
  8. echo %file1%处理完成。
  9. pause>nul
复制代码
请把所有相关文件移动到一个目录下!

由于论坛会转换代码中的TAB到空格,楼主可以直接下载附件。
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 9# hacker85

关键代码只有两句for而已;
我都已经为你做好修改工作了,你把  set file1= 修改为其他要处理文件即可。
你要处理的文件很多吗?

TOP

  1. @echo off
  2. SETLOCAL EnablEdElayEdExpansion
  3. pushd "%~dp0"
  4. if exist wellhead_all.txt ren wellhead_all.txt wellhead_all.bak
  5. for %%i in ( wellhead_*.txt ) do (
  6.   set file1=%%~i
  7.   echo %%~i 处理中…
  8.   echo.
  9.   for /f "tokens=1*" %%a  in (!file1!) do if not "%%a"=="" set %%a=1
  10. (for /f "tokens=1*" %%A in (wellhead_all.bak) do if defined %%A echo %%A %%B) > new_%%~i
  11.   echo %%~i 处理完成
  12.   echo.
  13. )
  14. if exist wellhead_all.bak ren wellhead_all.bak wellhead_all.txt
  15. pause
复制代码
请自行替换  %%A        %%B之间的空格为TAB。
1

评分人数

    • CrLf: 乐于助人,幸苦了PB + 5

TOP

本帖最后由 applba 于 2012-1-19 23:44 编辑

回复 12# hacker85
1、1*表示,第一列内容返回给第一个For变量,后面所有的内容原封不动作为一列内容返回给第二个For变量。
2、设置为1是使其成为defined状态,只要不是空的,可以是其他任何值~
3、使用括号括起整个For语句,可以把它的全部输出一次性重定向到文件~

TOP

  1. @echo off
  2. pushd "%~dp0"
  3. if exist wellhead_all.txt ren wellhead_all.txt wellhead_all.bak
  4. for %%i in ( wellhead_*.txt ) do (
  5.   echo %%~i 处理中…
  6.   echo.
  7.   SetLocal
  8.   for /f "tokens=1*" %%a  in (%%~i) do if not "%%a"=="" set %%a=1
  9. (for /f "tokens=1*" %%A in (wellhead_all.bak) do if defined %%A echo %%A        %%B) > new_%%~i
  10. ENDLOCAL
  11.   echo %%~i 处理完成
  12.   echo.
  13. )
  14. if exist wellhead_all.bak ren wellhead_all.bak wellhead_all.txt
  15. pause
复制代码
自行替换空格到TAB

TOP

回复 18# hacker85


    不是变量延迟扩展的原因~
    这是变量作用范围和存活期的问题,在我的理解中是叫变量的局部化~

TOP

返回列表