Board logo

标题: [文本处理] 【已解决】求批处理实现桌号快速生成方法 [打印本页]

作者: rockjean    时间: 2019-10-23 10:39     标题: 【已解决】求批处理实现桌号快速生成方法

本帖最后由 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多桌……
作者: rockjean    时间: 2019-10-23 10:56

我想这么干,先取得桌数,比如300桌,用Excel拉个数据001~300,每个桌数号为一行,生成文本:桌数.txt
然后取得每桌的位数,比如10位,也用Excel拉个数据01~10,一条数据一行,生成文本:位数.txt
接下来就是提第一行桌数号,分别提十次位数号,如法炮制,提第二行桌数号,分别再提位数号……
就是这样用批处理要怎么操作呢?
作者: cfwyy77_bat    时间: 2019-10-23 12:03

其实就两层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. }
复制代码

作者: Batcher    时间: 2019-10-23 13:54

  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"
复制代码

作者: rockjean    时间: 2019-10-23 14:55

回复 4# Batcher


不知道是什么原因呢?
作者: Batcher    时间: 2019-10-23 17:00

回复 5# rockjean


用记事本打开你的bat
文件
另存为
选择ANSI编码
作者: rockjean    时间: 2019-10-24 16:25

回复 6# Batcher


果真可以了,感谢大神!懒人又推动更进一步~
作者: rockjean    时间: 2019-10-29 08:30

回复 3# cfwyy77_bat


    Powershell没有入门,依旧感谢~




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2