[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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
复制代码

请介绍一下这个代码主要是为了实现了什么功能?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

文件名与日期没有对应规律,不好弄.
你把文件名与日期对应关系做一个列表文件,这样几行代码就搞定了
QQ 33892006

TOP

回复 2# Batcher

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

TOP

回复 3# yhcfsr


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

TOP

回复 2# Batcher

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

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

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

TOP

回复 6# rockjean
50元给你弄个最好的,干不干?

TOP

回复 7# happy886rr


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

TOP

本帖最后由 happy886rr 于 2019-3-26 19:41 编辑

回复 8# rockjean

箱贴条码号已经包含了箱贴号,只需提取箱贴条码一列就行。
很简单的一个问题几行代码搞定,你却用了几十行

TOP

回复 9# happy886rr


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

TOP

本帖最后由 523066680 于 2019-3-26 20:10 编辑

回复 10# rockjean

    happy职业处理过这类条码打印问题,处理过的情况可能还要复杂一些的,你们可以沟通一下。

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

只学了几天很厉害了!

你要处理表格(如xls,xlsx)可以直接用vbs,或者vbs导出01.txt之后再bat处理。
如果你的黑色标签里面有2019-09-01的日期信息,也可以做到直接把01.txt与09/01/2019这个日期关联起来。
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 13# cutebe


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

TOP

返回列表