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

[文件操作] 【已解决】生成条码标签BAT代码精简或有更优解

本帖最后由 rockjean 于 2019-3-27 19:48 编辑

如下代码,不知哪位大神可以指点一二,使之更精简,更合理,更有效率~
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::生成时间戳
  4. for /f "tokens=1,2,3 delims=/" %%1 in ('echo %date:~0,10%') do set filename=%%1 %%2 %%3
  5. ::开始合并
  6. for /f "tokens=1,2 delims= " %%a in (01.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  7. echo 01 end>>Chile数据包!filename!.txt
  8. for /f "tokens=1,2 delims= " %%a in (02.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  9. echo 02 end>>Chile数据包!filename!.txt
  10. for /f "tokens=1,2 delims= " %%a in (03.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  11. echo 03 end>>Chile数据包!filename!.txt
  12. for /f "tokens=1,2 delims= " %%a in (04.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  13. echo 04 end>>Chile数据包!filename!.txt
  14. for /f "tokens=1,2 delims= " %%a in (05.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  15. echo 05 end>>Chile数据包!filename!.txt
  16. for /f "tokens=1,2 delims= " %%a in (06.txt) do echo %%a 00000%%b 15/01/2019 CHILE>>Chile数据包!filename!.txt
  17. echo 06 end>>Chile数据包!filename!.txt
  18. for /f "tokens=1,2 delims= " %%a in (07.txt) do echo %%a 00000%%b 15/01/2019 CHILE>>Chile数据包!filename!.txt
  19. echo 07 end>>Chile数据包!filename!.txt
  20. for /f "tokens=1,2 delims= " %%a in (08.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  21. echo 08 end>>Chile数据包!filename!.txt
  22. for /f "tokens=1,2 delims= " %%a in (09.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  23. echo 09 end>>Chile数据包!filename!.txt
  24. for /f "tokens=1,2 delims= " %%a in (10.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  25. echo 10 end>>Chile数据包!filename!.txt
  26. for /f "tokens=1,2 delims= " %%a in (11.txt) do echo %%a 00000%%b 15/01/2019 CHILE>>Chile数据包!filename!.txt
  27. echo 11 end>>Chile数据包!filename!.txt
  28. for /f "tokens=1,2 delims= " %%a in (12.txt) do echo %%a 00000%%b 15/01/2019 CHILE>>Chile数据包!filename!.txt
  29. echo 12 end>>Chile数据包!filename!.txt
  30. for /f "tokens=1,2 delims= " %%a in (13.txt) do echo %%a 00000%%b 15/01/2019 CHILE>>Chile数据包!filename!.txt
  31. echo 13 end>>Chile数据包!filename!.txt
  32. for /f "tokens=1,2 delims= " %%a in (14.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  33. echo 14 end>>Chile数据包!filename!.txt
  34. for /f "tokens=1,2 delims= " %%a in (15.txt) do echo %%a 00000%%b 09/01/2019 CHILE>>Chile数据包!filename!.txt
  35. echo 15 end>>Chile数据包!filename!.txt
  36. del *.bat
复制代码

回复 2# Batcher

    就是做一个这样子的条码标签。

TOP

回复 3# yhcfsr


    数据是从客户的电子表格提取出来的,日期没有规律。

TOP

回复 2# Batcher

    需要从这样的表格里提取数据,先提取黑色的

只有那个箱贴条码号与箱贴号有用,提出来的结果如下

生成一个文本01.txt,然后再提取军绿的,生成文本02.txt,如此类推。
每个表格的日期可能是不一样的,而且每种颜色的数据后需要隔一个空白,
所以只能先做成01.txt,02.txt,……这个样子,最终再合并。

TOP

回复 7# happy886rr


    这这这,这让人情何以堪呐?!
目前我的效率已经是同事们的8倍之多,暂且先用这代码吧~

TOP

回复 9# happy886rr


    我不信几行代码能搞定,因为每个数据之间需要插空白行,而且日期每次都有变动,有可能这次的订单是5个文件,下次是23个文件……
您所说的箱号规律,只能是解决了%%b那里的问题~

TOP

以我学了批处理几天的功力,参考Batcher大神的代码,只能这样精简一下吧:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::生成时间戳
  4. for /f "tokens=1,2,3 delims=/" %%1 in ('echo %date:~0,10%') do set filename=%%1 %%2 %%3
  5. ::开始合并
  6. (for /f "tokens=1,2 delims= " %%a in (01.txt) do echo %%a 00000%%b 09/01/2019 CHILE
  7. echo 01 end
  8. for /f "tokens=1,2 delims= " %%a in (02.txt) do echo %%a 00000%%b 12/01/2019 CHILE
  9. echo 02 end
  10. for /f "tokens=1,2 delims= " %%a in (03.txt) do echo %%a 00000%%b 15/03/2019 CHILE
  11. echo 03 end
  12. )>>Chile数据包!filename!.txt
复制代码
经测试,完美通过~

TOP

回复 13# cutebe


    多谢谬赞,因为觉得批处理好学点,看到VBS头就大了~

TOP

返回列表