[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
来一个
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "tokens=1,2" %%a in (A.txt) do set "%%a=%%b"
  4. (for /f "tokens=1-3" %%a in (B.txt) do (
  5.   if defined %%a (if "%%c"=="" (set "str=%%b") else set "str=%%c") else (if "%%c"=="" (set "str=                     %%b") else set "str=%%c")
  6.   echo %%a    !%%a!    !str!)
  7.   )>C.txt
  8. pause
复制代码
1

评分人数

    • yujw668: 谢谢您根据我的思路帮我解决问题。代码很好 ...技术 + 1

TOP

按制表符对齐方式
  1. @echo off & setlocal EnableDelayedExpansion
  2. for /f "tokens=1,2" %%a in (a.txt) do set "%%a=%%b"
  3. ( for /f "tokens=1-3" %%a in (b.txt) do (
  4.   if "%%c"=="" ( if defined %%a ( set "str=%%b") else set "str= %%b") else set "str=%%c"
  5.   rem 若把c.txt输入到EXCEL,则把第5行改为:if "%%c"=="" ( set "str=%%b") else set "str=%%c"
  6.   set "name=%%a !%%a! !str!"
  7.   set "name=!name: = !"
  8.   rem 右边的空位按一次TAB键输入,用鼠标选择时是一个完整的空位。若可以选择多个空格则输入错误,请设定编辑器。
  9.   echo;!name!
  10. ))>C.txt
  11. pause & exit
  12. rem 最后输出的文件是带制表符的,常见的有txt dat。它是按列对齐的。
复制代码
=================================

TOP

回复 4# yujw668

倒数第2个程式产生串行:是因为原C.TXT中第二列为空时有许多的空格,每个空格产生一个制表符,所以串行,显示不完换行显示。用此方式时只需一个空格即可。在 str=%str: =   % 这里可以添加多个制表符。但导入到EXCEL时会发现新增很多列,一个制表符一列。

TOP

返回列表