中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何声明并替换多个变量?
作者:
标题: [求助]如何声明并替换多个变量? 上一主题 | 下一主题
flybird2020
初级用户





积分 103
发帖 52
注册 2007-4-13
状态 离线
『楼 主』:  [求助]如何声明并替换多个变量? 使用 LLM 解释/回答一下

EXCEL原件内容:

6:44 节目一 6:50 节目二 8:00 节目三 12:00 节目四 15:25 节目五 16:29 节目六
6:30 节目一 7:00 节目二 8:02 节目三 8:35 节目四 9:00 节目五 9:44 节目六
6:05 节目一 6:30 节目二 7:00 节目三 7:30 节目四 8:01 节目五 8:17 节目六
6:56 节目一 7:00 节目二 7:10 节目三 7:25 节目四 7:55 节目五 8:35 节目六
6:06 节目一 6:37 节目二 7:00 节目三 7:34 节目四 8:05 节目五 9:09 节目六
6:56 节目一 7:00 节目二 7:18 节目三 7:58 节目四 11:40 节目五 12:41 节目六
6:00 节目一 6:20 节目二 6:54 节目三 7:53 节目四 11:17 节目五 11:57 节目六
7:30 节目一 12:55 节目二 19:35 节目三 23:35 节目四
7:10 节目一 7:30 节目二 12:30 节目三 12:55 节目四 13:05 节目五 15:55 节目六
6:14 节目一 6:30 节目二 8:20 节目三 11:40 节目四 12:00 节目五 15:38 节目六
7:00 节目一 11:11 节目二 12:00 节目三 12:30 节目四 16:33 节目五 17:30 节目六
6:30 节目一 7:00 节目二 7:20 节目三 8:00 节目四 12:30 节目五 12:35 节目六
6:15 节目一 7:00 节目二 7:30 节目三 11:50 节目四 12:15 节目五 12:35 节目六
6:45 节目一 7:05 节目二 7:35 节目三 8:25 节目四 11:30 节目五 17:45 节目六
6:00 节目一 6:32 节目二 6:45 节目三 7:00 节目四 7:22 节目五 7:32 节目六
6:00 节目一 6:30 节目二 7:30 节目三 7:51 节目四 8:00 节目五 11:50 节目六
7:00 节目一 7:50 节目二 9:00 节目三 9:15 节目四 10:15 节目五 10:55 节目六
7:30 节目一 7:50 节目二 12:00 节目三 12:30 节目四 13:10 节目五 18:00 节目六



昨天我提的如何计算时间差,我自己以为可以解决
通过EXCEL函数:“(HOUR(I2-F2)*60+MINUTE(I2-F2))”
结果今天发现,BAT中声明的变量有数量限制的
而我的节目表中一行中数据最少也应该有150+个
这要如何声明变量呢?
目前我可能只能做到把EXCEL分成几部分,一次执行N列(N<31),再复制到EXCEL中,等于是一个EXCEL表我要分最少五次来执行BAT

我的低级BAT内容如下:
if exist letter_End.txt del letter_End.txt /f/q
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 delims= " %%a in (letter.txt) do (
echo %%a %%c %%d =^(HOUR^(F%%a-C%%a^)*60+MINUTE^(F%%a-C%%a^)^) %%e %%f =^(HOUR^(I%%a-F%%a^)*60+MINUTE^(I%%a-F%%a^)^) %%g %%h =^(HOUR^(L%%a-I%%a^)*60+MINUTE^(L%%a-I%%a^)^) %%i %%j =^(HOUR^(O%%a-L%%a^)*60+MINUTE^(O%%a-L%%a^)^) %%k %%l =^(HOUR^(R%%a-O%%a^)*60+MINUTE^(R%%a-O%%a^)^) %%m %%n =^(HOUR^(U%%a-R%%a^)*60+MINUTE^(U%%a-R%%a^)^) %%o %%p =^(HOUR^(X%%a-U%%a^)*60+MINUTE^(X%%a-U%%a^)^) %%q %%r =^(HOUR^(AA%%a-X%%a^)*60+MINUTE^(AA%%a-X%%a^)^) %%s %%t =^(HOUR^(AD%%a-AA%%a^)*60+MINUTE^(AD%%a-AA%%a^)^) %%u %%v =^(HOUR^(AG%%a-AD%%a^)*60+MINUTE^(AG%%a-AD%%a^)^) %%w %%x =^(HOUR^(AJ%%a-AG%%a^)*60+MINUTE^(AJ%%a-AG%%a^)^) %%y %%z =^(HOUR^(AM%%a-AJ%%a^)*60+MINUTE^(AM%%a-AJ%%a^)^)>>letter_End.txt
)


离我的目标差了好远,我希望达到如下效果:
6:44	节目一	节目二减节目一的时间差	6:50	节目二	节目三减节目二的时间差	8:00	节目三	节目四减节目三的时间差	12:00	节目四	节目五减节目四的时间差	15:25	节目五	节目六减节目五的时间差	16:29	节目六
6:30 节目一 节目二减节目一的时间差 7:00 节目二 节目三减节目二的时间差 8:02 节目三 节目四减节目三的时间差 8:35 节目四 节目五减节目四的时间差 9:00 节目五 节目六减节目五的时间差 9:44 节目六
6:05 节目一 节目二减节目一的时间差 6:30 节目二 节目三减节目二的时间差 7:00 节目三 节目四减节目三的时间差 7:30 节目四 节目五减节目四的时间差 8:01 节目五 节目六减节目五的时间差 8:17 节目六
6:56 节目一 节目二减节目一的时间差 7:00 节目二 节目三减节目二的时间差 7:10 节目三 节目四减节目三的时间差 7:25 节目四 节目五减节目四的时间差 7:55 节目五 节目六减节目五的时间差 8:35 节目六
6:06 节目一 节目二减节目一的时间差 6:37 节目二 节目三减节目二的时间差 7:00 节目三 节目四减节目三的时间差 7:34 节目四 节目五减节目四的时间差 8:05 节目五 节目六减节目五的时间差 9:09 节目六
6:56 节目一 节目二减节目一的时间差 7:00 节目二 节目三减节目二的时间差 7:18 节目三 节目四减节目三的时间差 7:58 节目四 节目五减节目四的时间差 11:40 节目五 节目六减节目五的时间差 12:41 节目六
6:00 节目一 节目二减节目一的时间差 6:20 节目二 节目三减节目二的时间差 6:54 节目三 节目四减节目三的时间差 7:53 节目四 节目五减节目四的时间差 11:17 节目五 节目六减节目五的时间差 11:57 节目六
7:30 节目一 节目二减节目一的时间差 12:55 节目二 节目三减节目二的时间差 19:35 节目三 节目四减节目三的时间差 23:35 节目四 无节目五,数据为空 无节目六,数据为空
7:10 节目一 节目二减节目一的时间差 7:30 节目二 节目三减节目二的时间差 12:30 节目三 节目四减节目三的时间差 12:55 节目四 节目五减节目四的时间差 13:05 节目五 节目六减节目五的时间差 15:55 节目六
6:14 节目一 节目二减节目一的时间差 6:30 节目二 节目三减节目二的时间差 8:20 节目三 节目四减节目三的时间差 11:40 节目四 节目五减节目四的时间差 12:00 节目五 节目六减节目五的时间差 15:38 节目六
7:00 节目一 节目二减节目一的时间差 11:11 节目二 节目三减节目二的时间差 12:00 节目三 节目四减节目三的时间差 12:30 节目四 节目五减节目四的时间差 16:33 节目五 节目六减节目五的时间差 17:30 节目六
6:30 节目一 节目二减节目一的时间差 7:00 节目二 节目三减节目二的时间差 7:20 节目三 节目四减节目三的时间差 8:00 节目四 节目五减节目四的时间差 12:30 节目五 节目六减节目五的时间差 12:35 节目六
6:15 节目一 节目二减节目一的时间差 7:00 节目二 节目三减节目二的时间差 7:30 节目三 节目四减节目三的时间差 11:50 节目四 节目五减节目四的时间差 12:15 节目五 节目六减节目五的时间差 12:35 节目六
6:45 节目一 节目二减节目一的时间差 7:05 节目二 节目三减节目二的时间差 7:35 节目三 节目四减节目三的时间差 8:25 节目四 节目五减节目四的时间差 11:30 节目五 节目六减节目五的时间差 17:45 节目六
6:00 节目一 节目二减节目一的时间差 6:32 节目二 节目三减节目二的时间差 6:45 节目三 节目四减节目三的时间差 7:00 节目四 节目五减节目四的时间差 7:22 节目五 节目六减节目五的时间差 7:32 节目六
6:00 节目一 节目二减节目一的时间差 6:30 节目二 节目三减节目二的时间差 7:30 节目三 节目四减节目三的时间差 7:51 节目四 节目五减节目四的时间差 8:00 节目五 节目六减节目五的时间差 11:50 节目六
7:00 节目一 节目二减节目一的时间差 7:50 节目二 节目三减节目二的时间差 9:00 节目三 节目四减节目三的时间差 9:15 节目四 节目五减节目四的时间差 10:15 节目五 节目六减节目五的时间差 10:55 节目六
7:30 节目一 节目二减节目一的时间差 7:50 节目二 节目三减节目二的时间差 12:00 节目三 节目四减节目三的时间差 12:30 节目四 节目五减节目四的时间差 13:10 节目五 节目六减节目五的时间差 18:00 节目六


不局限于EXCEL操作,我第一步就是把EXCEL手动复制到TXT文件中以便我用BAT操作
由于数据非常庞大(EXCEL原件内容中只是节选的小小小一部分。。。),我BAT基础如此之烂也不得不寻求这方面的解决方法
希望大大们不吝赐教,感激不尽

Last edited by flybird2020 on 2008-7-23 at 05:22 PM ]

2008-7-23 17:20
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

看了楼主的帖子,我晕了。。。
楼主把我发在你上个贴子的代码改一下就可以了啊,还要再次发贴,所以晕。

Last edited by zw19750516 on 2008-7-23 at 05:33 PM ]



批处理之家新域名:www.bathome.net
2008-7-23 17:26
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

要疯了




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-7-23 17:30
查看资料  发短消息  网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

建议楼主用OFFICE 里的VBA 来实现
虽然说你需要花时间去学




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-7-23 17:32
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

结果今天发现,BAT中声明的变量有数量限制的

我是没发现这个现象,就是有这个限制,估计楼主这个文本也难达到。
不信楼主可以试下这个:

@echo off
for /l %%i in (1,1,100000) do set "_%%i=%%i"
echo %_100000%&pause>nul

定义10万个变量,然后显示第100000个变量的值。

Last edited by zw19750516 on 2008-7-23 at 06:03 PM ]



批处理之家新域名:www.bathome.net
2008-7-23 17:56
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

还是建议用EXCEL自己带的函数……你看看有没有dateiff



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-23 18:18
查看资料  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: