Windows analogowy do komendy czasowej unix


Odpowiedzi:



2

Możesz użyć timeit.exe z zestawu Windows Server 2003 Resource Kit .

Składnia:

timeit [-f nazwa_pliku] [-a] [-c] [-i] [-d] [-s] [-t] [-k nazwa_klucza | -r nazwa_klucza]
[-m Maska] [Polecenie]

-f nazwa_pliku  
Określa nazwę pliku bazy danych, w którym TimeIt przechowuje historię 
poprzednie czasy. Domyślna nazwa pliku to. \ Timeit.dat

-k nazwa_klucza
Określa nazwę klucza, która ma być używana dla tego uruchomienia pomiaru czasu.

-r nazwa_klucza
Określa nazwę klucza do usunięcia z bazy danych. Jeśli nazwa klucza to
po którym następuje przecinek i liczba, najwolniejszy czas (liczba dodatnia) lub
najszybszy czas (liczba ujemna) dla tej nazwy klucza zostanie usunięty.

-za
Określa, że ​​TimeIt powinien wyświetlać średnią wszystkich czasów dla 
określona nazwa klucza.

-ja
Ignoruje niezerowe kody powrotu z programu uruchamianego przez TimeIt.

-re
Pokazuje szczegóły dla średniej.

-s
Pomija liczniki systemowe.

-t
Określa dane tabelaryczne.

-do
Wymusza ponowne sortowanie bazy danych.

-m Maska
Określa maskę koligacji procesora.

Komenda
Określa polecenie do czasu.

Ale uniksowe polecenie „czas” nie zwraca bieżącego czasu epoki, więc nie ma to znaczenia. „time” uruchamia polecenie wstawione po wierszu poleceń, a następnie mówi, ile czasu rzeczywistego / użytkownika / systemowego zajęło polecenie. unixhelp.ed.ac.uk/CGI/man-cgi?time ma więcej szczegółów.
James Polley,

Ach Źle przeczytałem pytanie.
John T

** Westchnienie ** wydaje się, że moja odpowiedź została wymieniona na stronie SO, do której linkujesz.
John T

:) Łatwo się pomylić, zwłaszcza gdy timew systemie DOS / Windows odpowiada dateon systemowi * nix
James Polley

Och, znam je bardzo dobrze. Właśnie pomyślałem o zegarze systemu Windows, gdy napisano analog Windows, ponieważ analog jest rodzajem zegara. Inne znaczenie analogu nie przyszło mi do głowy: P
John T

1

Dzięki własnym badaniom online nie udało mi się znaleźć sposobu, aby to zrobić bezpośrednio za pomocą pliku wsadowego. Udało mi się jednak znaleźć to rozwiązanie, które zadziałało dla mnie:

W toEpoch.vbs:

WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())

Następnie wywołany z mojego skryptu wsadowego tak:

for /f "delims=" %%x in ('cscript /nologo filename.vbs') do set epoch=%%x

To ustawiło zmienną% epoch% z bieżącym znacznikiem czasu unix i byłem w stanie użyć jej tak, jak potrzebowałem.

Mam nadzieję że to pomoże.


0

Napisz program w C za pomocą funkcji GetProcessTimes, dokumentację znajdziesz w: http://msdn.microsoft.com/en-us/library/ms683223%28VS.85%29.aspx .

W przykładach książki „Programowanie systemu Windows” znajduje się program, który używa tej funkcji do pobierania dokładnie tego, czego potrzebujesz (Elapsed, Jądro, czasy użytkownika). Program nazywa się „timep.exe” i można go znaleźć w podkatalogach runX (X pochodzi z wersji Visual Studio użytej w kompilacji) w skompresowanym archiwum przykładów. Oto strona autora, z której można pobrać to archiwum http://www.jmhartsoftware.com/ , oczywiście jest tam również kod źródłowy, dzięki czemu można dokładnie zobaczyć, jak działa timep.exe.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.