找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21932|回复: 3

[文本处理] [已解决] 请教将Excel中的内容进行格式变换

[复制链接]
发表于 2012-6-3 08:25:52 | 显示全部楼层 |阅读模式
我想把in.xls中每个AP后面对应的所有字符串都放在AP下面,每个PN后面对应的所有字符串都放在PN下面,串和串之间用分号隔开,如out.xls所示。请教怎么写批处理程序?谢谢。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-6-3 10:16:07 | 显示全部楼层
这个,还是VBS比较靠谱吧。
发表于 2012-6-3 15:30:03 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. set "tab=        "
  3. set num=&set num1=&set num2=
  4. (for /f "tokens=1,2* delims=%tab%" %%a in (test.txt) do (
  5.   set "str=%%a"
  6.   if /i "!str:~1,4!"=="/238" (
  7.     if defined num1 (
  8.       if !num1! gtr !num2! (set num=!num1!) else set num=!num2!
  9.       for /l %%y in (1 1 !num!) do if defined #%%y (echo,!#%%y!%tab%%tab%!$%%y!) else echo,!#%%y!%tab%%tab%%tab%%tab%!$%%y!
  10.     )
  11.     echo,&echo,%%a%tab%%tab%%%b&echo,AP%tab%%tab%%tab%%tab%PN
  12.     for /f "delims==" %%a in ('set # 2^>nul') do set %%a=
  13.     for /f "delims==" %%a in ('set $ 2^>nul') do set %%a=
  14.     set flag=
  15.   )
  16.   if "%%a"=="AP" (set flag=ap&set/a num1=0)
  17.   if "%%a"=="PN" (set flag=pn&set/a num2=0)
  18.   if !flag!==ap (
  19.     set /a num1+=1
  20.     if "%%a"=="AP" (set str1=%%c) else set "str1=%%a"
  21.     set "#!num1!=!str1!"
  22.   )
  23.   if !flag!==pn (
  24.     set /a num2+=1
  25.     if "%%a"=="PN" (set str1=%%c) else set "str1=%%a"
  26.     set "$!num2!=!str1!"
  27.   )
  28. )

  29. if !num1! gtr !num2! (set num=!num1!) else set num=!num2!
  30. for /l %%y in (1 1 !num!) do if defined #%%y (echo,!#%%y!%tab%%tab%!$%%y!) else echo,!#%%y!%tab%%tab%%tab%%tab%!$%%y!
  31. )>intermediate.txt
  32. start intermediate.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-6-3 15:35:53 | 显示全部楼层
十分感谢Weichenxiehou 老师,问题已解决,还讲了很多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 02:51 , Processed in 0.015478 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表