标题: [文本处理] [已解决] 请教将Excel中的内容进行格式变换 [打印本页]
作者: ouch1983 时间: 2012-6-3 08:25 标题: [已解决] 请教将Excel中的内容进行格式变换
我想把in.xls中每个AP后面对应的所有字符串都放在AP下面,每个PN后面对应的所有字符串都放在PN下面,串和串之间用分号隔开,如out.xls所示。请教怎么写批处理程序?谢谢。
作者: gawk 时间: 2012-6-3 10:16
这个,还是VBS比较靠谱吧。
作者: weichenxiehou 时间: 2012-6-3 15:30
- @echo off&setlocal enabledelayedexpansion
- set "tab= "
- set num=&set num1=&set num2=
- (for /f "tokens=1,2* delims=%tab%" %%a in (test.txt) do (
- set "str=%%a"
- if /i "!str:~1,4!"=="/238" (
- if defined num1 (
- if !num1! gtr !num2! (set num=!num1!) else set num=!num2!
- for /l %%y in (1 1 !num!) do if defined #%%y (echo,!#%%y!%tab%%tab%!$%%y!) else echo,!#%%y!%tab%%tab%%tab%%tab%!$%%y!
- )
- echo,&echo,%%a%tab%%tab%%%b&echo,AP%tab%%tab%%tab%%tab%PN
- for /f "delims==" %%a in ('set # 2^>nul') do set %%a=
- for /f "delims==" %%a in ('set $ 2^>nul') do set %%a=
- set flag=
- )
- if "%%a"=="AP" (set flag=ap&set/a num1=0)
- if "%%a"=="PN" (set flag=pn&set/a num2=0)
- if !flag!==ap (
- set /a num1+=1
- if "%%a"=="AP" (set str1=%%c) else set "str1=%%a"
- set "#!num1!=!str1!"
- )
- if !flag!==pn (
- set /a num2+=1
- if "%%a"=="PN" (set str1=%%c) else set "str1=%%a"
- set "$!num2!=!str1!"
- )
- )
-
- if !num1! gtr !num2! (set num=!num1!) else set num=!num2!
- for /l %%y in (1 1 !num!) do if defined #%%y (echo,!#%%y!%tab%%tab%!$%%y!) else echo,!#%%y!%tab%%tab%%tab%%tab%!$%%y!
- )>intermediate.txt
- start intermediate.txt
复制代码
作者: ouch1983 时间: 2012-6-3 15:35
十分感谢Weichenxiehou 老师,问题已解决,还讲了很多
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |