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

[文本处理] 【已解决】求批处理实现桌号快速生成方法

[复制链接]
发表于 2019-10-23 10:39:31 | 显示全部楼层 |阅读模式
本帖最后由 rockjean 于 2019-10-24 16:28 编辑

公司举办晚宴,需要打印入场券桌号,共有45桌,每桌10人,现在需要生成如下的格式:
01桌01号
01桌02号
01桌03号
……
01桌10号
02桌01号
02桌02号
……
请问有什么方法可以用批处理快速生成桌号,只需要这样的格式:
01  01
01  02
01  03
……
01  10
02  01
02  02
……
因为下次可能去集团总部举办,就会有300多桌……

评分

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

查看全部评分

 楼主| 发表于 2019-10-23 10:56:44 | 显示全部楼层
我想这么干,先取得桌数,比如300桌,用Excel拉个数据001~300,每个桌数号为一行,生成文本:桌数.txt
然后取得每桌的位数,比如10位,也用Excel拉个数据01~10,一条数据一行,生成文本:位数.txt
接下来就是提第一行桌数号,分别提十次位数号,如法炮制,提第二行桌数号,分别再提位数号……
就是这样用批处理要怎么操作呢?
发表于 2019-10-23 12:03:13 | 显示全部楼层
其实就两层for循环,纯P的补0好像有点讨厌,不太想用。用其它的都很方便。
powershell:
  1. $T=45
  2. $N=10
  3. for($i=1;$i -le $T;$i++)
  4. {
  5.     for($j=1;$j -le $N;$j++)
  6.         {
  7.             '{0:d2} {1:d2}' -f $i,$j
  8.         }
  9. }
复制代码
发表于 2019-10-23 13:54:45 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set DeskBegin=1001
  4. set DeskNum=300
  5. set ChairBegin=101
  6. set ChairEnd=110
  7. set /a DeskEnd=1000+DeskNum
  8. (for /l %%i in (%DeskBegin%,1,%DeskEnd%) do (
  9.     set SuffixDesk=%%i
  10.     for /l %%j in (%ChairBegin%,1,%ChairEnd%) do (
  11.         set SuffixChair=%%j
  12.         echo !SuffixDesk:~-3!桌!SuffixChair:~-2!号
  13.     )
  14. ))>"桌号.txt"
复制代码
 楼主| 发表于 2019-10-23 14:55:51 | 显示全部楼层
回复 4# Batcher


不知道是什么原因呢?
发表于 2019-10-23 17:00:46 | 显示全部楼层
回复 5# rockjean


用记事本打开你的bat
文件
另存为
选择ANSI编码
 楼主| 发表于 2019-10-24 16:25:33 | 显示全部楼层
回复 6# Batcher


果真可以了,感谢大神!懒人又推动更进一步~
 楼主| 发表于 2019-10-29 08:30:26 | 显示全部楼层
回复 3# cfwyy77_bat


    Powershell没有入门,依旧感谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 11:25 , Processed in 0.018285 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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