我是编码和尝试学习和创新的新手。完成自动化程序。我有.csv文件,其中包含
列"411|487","41164","48036"
第二栏" 41164"是进程完成的秒数。因此,例如,如果时间是14:07,那么此列将是14 * 60 * 60 + 07 * 60 = 50820
行中的第三列" 48036"是应该重复的过程的秒数。因此,如果当前时间到秒数大于COLUMN3,我的宏程序会重复该列进程。我的问题是我有很多行,我使用的宏程序无法进行总计算以找出应该重复哪些行的过程。它会一个接一个地尝试找到它们,这意味着浪费很多时间,所以我应该让csv做好准备。使用下面的代码
For /F "UseBackQ Tokens=3 Delims=, " %%A In ("example.csv") Do (
Echo %%~A)>>"example2.csv"
我获取了example.csv中的所有column3数据,并将其写入带有引号的example2.csv中,然后将其写入相同内容,我尝试将当前时间计算为秒,并将其从%%〜A中减去< / p>
set hour=%TIME:~0,2%
set minute=%TIME:~3,2%
set /a hourtosec=%hour%*60*60
set /a minutetosec=%minute%*60
set /a totalsec=%hourtosec% + %minutetosec%
set /a repeat=%AA-%totalsec%
Echo %repeat%)>>"example2.csv"
但它不起作用。重复输出错误。如何从%AA中减去%totalsec%并将其写入文件?
答案 0 :(得分:1)
以下是您的示例,输出到新文件:
EditText
您还可以附加到现有输出文件,此版本也使用延迟扩展:
@Echo Off
Set "Inp=example.csv"
Set "Out=example2.csv"
If Not Exist "%Inp%" Exit /B
Set "Repeat="
Set "Now=%TIME%"
( For /F "UseBackQ Tokens=3 Delims=," %%A In ("%Inp%") Do (Echo %%~A
Set /A "Repeat=%%~A-((100%Now:~,2%%%100)*60*60)+(100%Now:~3,2%%%100)*60)"
Call Echo %%Repeat%%))>"%Out%"
If Not Defined Repeat Del "%Out%"