使用Windows批处理脚本定时进程

时间:2013-07-10 22:20:55

标签: windows batch-file

嗨,谢谢你,

我是开发批处理文件的新手,但我现在正在尝试编写一个bat文件,它将创建并写入ldif文件。我从简单的第一个开始。我还需要对进程进行计时,因为它可能会变得更加复杂,我可能需要稍后进行软件比较(例如bat与java之后)。

现在我只得到了这个:

@ echo "LDIF Generator"
@ echo off
:: *** Enter the file here "within the double quotes"
set fileName="test.ldif"
:: *** If file exists, then erase all previous content
::if exist %fileName% ECHO Erase the file >%fileName%

echo Hello>%fileName%
echo Created LDIF File %fileName%


set /a sum = 0
for /L %%A in (1,1,5) do (
    echo %%A>>%fileName%  set a/ sum =  "%sum% + %%A"
)
echo sum is %sum%
pause

我目前正试图弄清楚如何添加一些数字和时间过程。

到目前为止它给了我这个输出:

Hello
1  set a/ sum =  0 + 1
2  set a/ sum =  0 + 2
3  set a/ sum =  0 + 3
4  set a/ sum =  0 + 4
5  set a/ sum =  0 + 5

并且cmd sum为“0”

我试图用它来显示当前的迭代总和并回显最后总和以及完成该操作所需的时间。

3 个答案:

答案 0 :(得分:2)

@ECHO OFF &SETLOCAL
set /a sum = 0
for /L %%A in (1,1,5) do (
    set /a sum+=%%A
)
echo sum is %sum%


sum is 15

答案 1 :(得分:1)

批量时间计算是颈部的主要痛苦。检查this question的答案,了解不同的方法,从批处理脚本到外部工具。我个人更喜欢PowerShell Measure-Command cmdlet。

答案 2 :(得分:0)

使用Endoro的代码或类似的东西。这更简单。但是作为解释......使用像你这样的代码你需要启用delayedexpansion并使用!而不是FOR或IF结构中的%,以指定您要使用变量sum的运行时值而不是加载时值。

setlocal enabledelayedexpansion
set /a sum = 0
for /L %%A in (1,1,5) do (
    echo %%A>>%fileName%  set a/ sum =  "!sum! + %%A"
)
echo sum is %sum%
endlocal