Board logo

标题: [求助]如何声明并替换多个变量? [打印本页]

作者: flybird2020     时间: 2008-7-23 17:20    标题: [求助]如何声明并替换多个变量?


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 ]
作者: bat-zw     时间: 2008-7-23 17:26
看了楼主的帖子,我晕了。。。
楼主把我发在你上个贴子的代码改一下就可以了啊,还要再次发贴,所以晕。

[ Last edited by zw19750516 on 2008-7-23 at 05:33 PM ]
作者: yishanju     时间: 2008-7-23 17:30
要疯了
作者: yishanju     时间: 2008-7-23 17:32
建议楼主用OFFICE 里的VBA 来实现
虽然说你需要花时间去学
作者: bat-zw     时间: 2008-7-23 17:56


  Quote:
结果今天发现,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 ]
作者: slore     时间: 2008-7-23 18:18
还是建议用EXCEL自己带的函数……你看看有没有dateiff