কমান্ড লাইন সরঞ্জামকে সময় দেওয়ার সহজ উপায়


9

কমান্ড লাইন সরঞ্জামকে সময় দেওয়ার সবচেয়ে সহজ / দ্রুততম উপায় কী?

এটি সুপার নিখুঁত হতে হবে না (+/- সেকেন্ড ঠিক আছে) যেহেতু আমি আশা করি এটি কয়েক মিনিট বা এমনকি 1 ঘন্টা সময় নিতে পারে + এবং একটি ব্যাচ ফাইল লিখতে খুব ভাল। এছাড়াও, সময়মতো গণনা করার দরকার নেই, কেবল শুরুর সময় এবং শেষ সময় প্রদর্শন করুন।


স্ট্যাকওভারফ্লোতে থাকতে পারে।
জোয়

2
এটি কাজ করার জন্য যদি আমাকে কিছু "প্রোগ্রাম" করতে হয় ... সমাধানটি খুব জটিল। এর জন্য অবশ্যই কিছু কমান্ড লাইন সরঞ্জাম বা সাধারণ ব্যাচের সমাধান থাকতে হবে, না?
স্লোলাইফ

সার্ভারফল্টে আরও সম্ভবত।
কিরিল ভি লিয়াডভিনস্কি

সাধারণত ওএস কেবলমাত্র কতটা সিপিইউ সময় ব্যবহার করেছে তা যত্ন করে। নীচের আমার উত্তর আপনি যা চান তা করবে। আমি তথ্য সংরক্ষণের জন্য একটি লগ ফাইল ব্যবহার করি।
এএক্সএক্সমাস্টার

উত্তর:


19

আমি সাধারণত ব্যবহার করছি

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যুক্তি হিসাবে সেমিডি শুরু করেছেন ) আপনি echo !time!ইনপুট পুনঃনির্দেশের সাহায্যে কুশ্রী হ্যাকের অবলম্বন না করে কেবল ব্যবহার করতে পারেন ।

আপনি যদি ব্যাচের ফাইলটি ব্যবহার করতে চান তবে আপনি এটি এটি করতে পারেন:

@echo Start time: %time%
@%*>nul 2>nul
@echo End time: %time%

আমি এখানে স্টডআউট এবং স্ট্ডার উভয়ের জন্য পুনঃনির্দেশ যুক্ত করেছি, কারণ অন্যথায় এটি শুরু এবং শেষের লাইনগুলি খুঁজে পাওয়া কঠিন হতে পারে। এটি আপনার কোনও উদ্বেগের বিষয় না হলে আপনি এটি সরিয়ে ফেলতে পারেন।

তবে আজকাল আমি বেশিরভাগ সময়টাইম ব্যবহার করি - যা এতক্ষণে মুছে ফেলা হয়েছিল, দুঃখের সাথে।

পাওয়ারশেল পাশাপাশি একটি উপায়ও সরবরাহ করে:

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) প্রয়োজন হলে এড়াতে ভুলবেন না । উত্পাদিত আউটপুট অনুরূপ। পুনর্নির্দেশগুলি কার্যকর হবে না, যদিও।


টাইমটিটি উইন্ডোজ 2000 রিসোর্স কিট থেকে এসেছে এবং আর উপলভ্য নয়; 2003 সালে রিসোর্স কিটটি টাইমআইটি, যা আমার 64 বিট উইন 7 এ কাজ করে না work পাওয়ারশেল সমাধানের জন্য দেখুন superuser.com/questions/228056/…
পেশে

যে স্তন্যপান। যদিও আমার এখনও পুরানো কাল থেকে এখানে মৃত্যুদন্ড কার্যকর রয়েছে।
জোয়

@peche: আমি একটি ব্যাচ ফাইল যুক্ত করেছি যা এর জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে কাজ করতে পারে timethis
জোয়ি

4

আপনার জন্য কমান্ড চালানোর জন্য আপনি সিস্টেম শিডিয়ুলারটি ব্যবহার করতে পারেন।

নিয়ন্ত্রণ প্যানেল -> নির্ধারিত কার্য -> নতুন তৈরি করুন ....

আপনি যে কমান্ডটি চালাতে চান তাতে নির্ধারিত টাস্কটি নির্দেশ করুন এবং এটি যা চান তা করা উচিত।

আপনি যদি এমন একটি লগফিল তৈরি করতে চান যা সময় রাষ্ট্রের তথ্য সংরক্ষণ করে তবে আপনি উপরের স্ক্রিপ্টের অনুরূপ কিছু করার জন্য বিবেচনা করতে পারেন।

আমি এটি করার জন্য "এখন" নামক একটি ইউটিলিটি ব্যবহার করি কারণ এটি তারিখ এবং সময় প্রতিধ্বনিত হবে। লগ ফাইলগুলিতে আপনি ট্র্যাক রাখতে চান তবে কমান্ড লাইন স্ক্রিপ্টগুলির জন্য এটি খুব সহজ। এটি খুব কার্যকর কারণ এটি কোনও প্রতিক্রিয়ার যত্ন করে না এবং এটি শেষ হয়ে গেলে এটি চলে যায়।

এখন উত্সত্ব এখানে পাওয়া যাবে

স্ক্রিপ্ট উদাহরণ হবে ...

echo -------------- >>logfile.txt
now Process Starting>> logfile.txt
<commandhere> <target> >> logfile.txt
now process Ending >> logfile.txt
echo -------------- >> logfile.txt

নমুনা আউটপুট মত দেখতে হবে

--------------
Mon Mar 06 14:58:48 2009 Process Starting
GNU Super Duper Process PID 12345! Success
Mon Mar 06 21:47:01 2009 Process Ending
--------------

4

অন্য বিকল্পটি হ'ল timeকমান্ডটি ব্যবহার /tকরা হবে যার সাহায্যে সময় নির্ধারণ না করে কনসোলটিতে (বা লগটিতে পুনর্নির্দেশ) সরিয়ে দেওয়া হবে। এতে একটি সীমাবদ্ধতা রয়েছে যা এটি আপনাকে ঘন্টা, মিনিট, কিন্তু সেকেন্ড এবং মিলিসেকেন্ডগুলি দেবে না।

call time /t  > myLog.log
call mybat   >> myLog.log
call time /t >> myLog.log

দুর্ভাগ্যক্রমে, "সময় / t" আউটপুট সেকেন্ড দেয় না, কেবল "ঘন্টা: মিনিট am / pm"।
স্লোলাইফ

ঠিক আছে আপনি, আমি উত্তর আপডেট করেছি।
akf

1

আপনার পাওয়ারশেল থাকলে, আপনি এটি করতে পারেন (পাঠযোগ্যতার জন্য সমস্ত এক লাইন, বিচ্ছিন্ন):

PS C:\> $startTime=Get-Date;ping /n 4 localhost;$endTime=Get-Date;
        echo "Finished in $(($endTime-$startTime).ToString())"

অথবা সহজে পুনরায় ব্যবহারের জন্য এটি কোনও ফাইলে সংরক্ষণ করুন।

# usage: .\timer.ps1 program [arguments]

$startTime = Get-Date;
$prog = $args[0];
$progargs = $args[1..($args.length-1)];

&$prog $progargs

$endTime = Get-Date;

echo "Finished in $(($endTime - $startTime).ToString())";

1
In command prompt:
 wmic path win32_operatingsystem get LocalDateTime
 wmic path win32_operatingsystem get LocalDateTime
 wmic path win32_operatingsystem get LocalDateTime

Output:
C:\Users\Steini> wmic path win32_operatingsystem get LocalDateTime
LocalDateTime
20180113135409.370000+000

C:\Users\Steini>wmic path win32_operatingsystem get LocalDateTime
LocalDateTime
20180113135409.525000+000

C:\Users\Steini>wmic path win32_operatingsystem get LocalDateTime
LocalDateTime
20180113135409.627000+000

ক্লিপবোর্ড থেকে Ctrl + v ব্যবহার করে 15,5ms এবং 10,2ms


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.