實現windows批處理下的計時功能

來源:互聯網
上載者:User

標籤:

有時在執行完一段windows的批處理後,想知道這個過程花費了多少時間,如果是windows下的c代碼可以在過程前後分別調用GetTickCount(),然後相減即可得到花費的時間。

但是如果在批處理中就沒有這樣現成的函數,並且在本人在網上找了好久都沒找到。最後在搞定了批處理變數計算,從exe中取得傳回值等技術點後,最終實現了這個功能。

在批處理中求值

下面的代碼將列印出20

1 @echo off2 set cho=233 set /a res=%cho% - 34 echo %res%

注意,第一個set後面=前後一定不能加空格,第二個set後一定得有/a

取得exe的傳回值

用%errorlevel%可以取得執行一個exe之後其傳回值。

@echo offstart /wait Program.exeset r=%errorlevel%echo %r%

 

GetTickCount程式

寫一個簡單的c程式,調用GetTickCount()將其值返回

#include <windows.h>#include <stdio.h>int main(int argc, char** argv){    int t = GetTickCount();    printf("%d\n", t);    return t;}

隨便用一個c的編譯器,將上面的c源碼編譯成exe程式,取名為GetTickCount.exe,並將其放到某個系統路徑下。

應用
@echo offstart /wait GetTickCount.exeset t1=%errorlevel%sleep 3
::TODO Something
start /wait GetTickCount.exeset t2=%errorlevel%set /a t=%t2%-%t1%echo %t%

最後將列印出以毫秒為單位的時間花費。

GetTickCount的下載路徑 http://files.cnblogs.com/files/xiangism/GetTickCount.rar

linux下的bash實現計時

順便貼出如何在linux下的shell中實現計時

#!/bin/bashstart=$(date "+%s")#do somethingsleep 2now=$(date "+%s")time=$((now-start))echo "time used:$time seconds"

 

~~~~Eureka~~~~

 

實現windows批處理下的計時功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.