मैं आमतौर पर उपयोग कर रहा हूं
echo.|time & my_command & echo.|time
जब मेरे पास कुछ और नहीं है। यह निम्न की तरह आउटपुट का कारण बनता है:
> प्रतिध्वनि | समय और पिंग -n 4 लोकलहोस्ट> नल & गूंज | समय
वर्तमान समय है: 18: 42: 34,63
नया समय दर्ज करें:
वर्तमान समय है: 18: 42: 37,68
नया समय दर्ज करें:
नहीं सुंदर और पाया जा करने के लिए पाइपिंग द्वारा सुंदर बनाया जा सकता है:
echo.|time|findstr current & ping -n 4 localhost > nul & echo.|time|findstr current
यदि आपने डिफ़ॉल्ट रूप से सक्षम विस्तार में विलंब किया है (या /v:on
तर्क के रूप में cmd शुरू किया है), तो आप echo !time!
इनपुट पुनर्निर्देशन के साथ बदसूरत हैक्स का सहारा लिए बिना भी उपयोग कर सकते हैं ।
यदि आप एक बैच फ़ाइल का उपयोग करना चाहते हैं, तो आप इसे इस तरह से कर सकते हैं:
@echo Start time: %time%
@%*>nul 2>nul
@echo End time: %time%
मैंने यहाँ stdout और stderr दोनों के लिए nul को पुनर्निर्देशन में जोड़ा है, क्योंकि अन्यथा प्रारंभ और समाप्ति रेखाओं को खोजना मुश्किल हो सकता है। यदि आप को इससे कोई सरोकार नहीं है तो आप इसे हटा सकते हैं।
लेकिन आजकल मैं ज्यादातर TimeThis का उपयोग करता हूं - जो अब तक हटा दिया गया था, दुख की बात है।
PowerShell एक तरीका भी प्रदान करता है:
Measure-Command { my_command }
लेकिन आपको उन चीजों से सावधान रहना होगा जो काम करने वाली निर्देशिका या पुनर्निर्देशन पर निर्भर करती हैं। सही ढंग से काम करने वालों के लिए आपको थोड़ी सी चालाकी की आवश्यकता हो सकती है:
@echo off
setlocal enableextensions
rem Prepare current directory and command line so they
rem can be stuck into a single-quoted PowerShell string.
set "Dir=%CD:'=''%"
set "Cmd=%*"
set "Cmd=%Cmd:'=''%"
rem Prepare command to pass to PowerShell
set Command=
set "Command=&{"
set "Command=%Command% Set-Location '%Dir%'"
set "Command=%Command%; [Environment]::CurrentDirectory = '%Dir%'"
set "Command=%Command%; $start = Get-Date"
set "Command=%Command%; Write-Host ' Command line : %Cmd%'"
set "Command=%Command%; Write-Host (' Start time : ' + $start.ToString())"
set "Command=%Command%; Write-Host"
set "Command=%Command%; iex 'cmd /c %Cmd%'"
set "Command=%Command%; $end = Get-Date"
set "Command=%Command%; Write-Host"
set "Command=%Command%; Write-Host ' Command line : %Cmd%'"
set "Command=%Command%; Write-Host (' Start time : ' + $start.ToString())"
set "Command=%Command%; Write-Host (' End time : ' + $end.ToString())"
set "Command=%Command%; Write-Host (' Elapsed time : ' + ($end - $start).ToString())"
set "Command=%Command%; }"
powershell -noprofile -command "%Command%"
endlocal
इसे उसी तरह चलाया जा सकता है timethis
, जैसे \"
कि कमांड लाइन में ( timethis
जैसे भी हो) आवश्यक होने पर दोहरे उद्धरण चिह्नों से बचना सुनिश्चित करें । उत्पादित उत्पादन समान है। पुनर्निर्देशन हालांकि काम नहीं करेगा।