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

[文本处理] 批处理如何将一行文本按要求分割并赋予不同变量?

现有文本文件1.txt,内容为:20160813*某市委组织部*某公司党课视频制作.txt*客户单位=某市委组织部*客户项目=视频制作*具体项目=某公司党课*项目单价=250*项目数量=1*金额合计=250*项目联系人=李某某*联系电话=88888888888*开具=未开*开票日期=未知*号码=未知*结账方式=未知*支票号码=未知*银行流水=未知*创建日期=20160813*结账日期=未知
其中由*号分割成19个字符段,但后期可能会增加或者减少。
目的:将各字符段分别赋予不同变量,方便后续操作。
我目前自编了一个代码
  1. @echo off
  2. cls
  3. set mulu=C:\Users\pc\Desktop
  4. for /f "tokens=1-19 delims=*" %%a in (%mulu%\1.txt) do (
  5. echo %%a
  6. echo %%b
  7. echo %%c
  8. echo %%d
  9. echo %%e
  10. echo %%f
  11. echo %%g
  12. echo %%h
  13. echo %%i
  14. echo %%j
  15. echo %%k
  16. echo %%l
  17. echo %%m
  18. echo %%n
  19. echo %%o
  20. echo %%p
  21. echo %%q
  22. echo %%r
  23. echo %%s
  24. )
  25. pause
复制代码
希望各位大佬不吝赐教,希望能实现:1.变量根据字符段的多少自动设置。2.将各字符段分别赋予变量,方便后续操作。

简单的办法,把26段全部定义了,空的变量不会显示
  1. @echo off
  2. cls
  3. set mulu=C:\Users\pc\Desktop
  4. for /f "tokens=1-26 delims=*" %%a in (%mulu%\1.txt) do (
  5. set a=%%a
  6. set b=%%b
  7. set c=%%c
  8. set d=%%d
  9. set e=%%e
  10. set f=%%f
  11. set g=%%g
  12. set h=%%h
  13. set i=%%i
  14. set j=%%j
  15. set k=%%k
  16. set l=%%l
  17. set m=%%m
  18. set n=%%n
  19. set o=%%o
  20. set p=%%p
  21. set q=%%q
  22. set r=%%r
  23. set s=%%s
  24. set t=%%t
  25. set u=%%u
  26. set v=%%v
  27. set w=%%w
  28. set x=%%x
  29. set y=%%y
  30. set z=%%z
  31. )
  32. echo %a%%b%%c%%d%%e%%f%%g%%h%%i%%j%%k%%l%%m%%n%%o%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z%
  33. pause
复制代码

TOP

回复 2# idwma


    如果文件内只有1行,这样可行。但我文件内不止1行,这样的话只能显示第1行的内容。

TOP

回复 3# binghejin
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cls
  4. set mulu=C:\Users\pc\Desktop
  5. for /f "tokens=1-26 delims=*" %%a in (%mulu%\1.txt) do (
  6. set a=%%a
  7. set b=%%b
  8. set c=%%c
  9. set d=%%d
  10. set e=%%e
  11. set f=%%f
  12. set g=%%g
  13. set h=%%h
  14. set i=%%i
  15. set j=%%j
  16. set k=%%k
  17. set l=%%l
  18. set m=%%m
  19. set n=%%n
  20. set o=%%o
  21. set p=%%p
  22. set q=%%q
  23. set r=%%r
  24. set s=%%s
  25. set t=%%t
  26. set u=%%u
  27. set v=%%v
  28. set w=%%w
  29. set x=%%x
  30. set y=%%y
  31. set z=%%z
  32. echo !a!!b!!c!!d!!e!!f!!g!!h!!i!!j!!k!!l!!m!!n!!o!!p!!q!!r!!s!!t!!u!!v!!w!!x!!y!!z!
  33. )
  34. pause
复制代码

TOP

去看看 awk

TOP

返回列表