উইন্ডোজে কমান্ড আউটপুটটির প্রথম এন লাইনগুলি কীভাবে প্রদর্শন করবেন? (ইউনিক্স কমান্ড "হেড" এর সমতুল্য)


17

আমার ইউনিক্স headকমান্ডের সমতুল্য প্রয়োজন (আউটপুটটির প্রথম এন লাইনগুলি প্রদর্শন করুন)। আমি বর্তমানে এটি ব্যবহার করছি:

tasklist | find /N " " | findstr /r \[[0-9]\]

উপরের কোডটি 10 tasklistআউটপুটের প্রথম লাইন প্রদর্শন করে । রেজেক্স ব্যবহার করে প্রথম 10 লাইন উত্তোলন করার find /N " "সময় প্রতিটি লাইনের শুরুতে একটি লাইন নম্বর প্রেরণ findstr /r \[[0-9]\]করে।

উপরে কোড কাজ করে তবে আমার কোনও ব্যাপ্তি নির্দিষ্ট করতে হবে । উইন্ডোজের মান অনুযায়ী নিয়মিত মত প্রকাশ করা হয় না এই কারণে, আমি আর কিছু করতে পারি না।

আমি কীভাবে একটি সেন্টিমিটার আউটপুট থেকে যথেচ্ছ লাইনগুলি বের করতে পারি? ওয়ান-লাইনার দিয়ে এটি করা গুরুত্বপূর্ণ। কোন স্ক্রিপ্ট নেই!


.....................
গিক্সার

উত্তর:


36

শক্তির উৎস.

PS C:\> netstat | Select -First 20

সম্পাদনা: আমার একটি অনুভূতি রয়েছে যে আপনি জোর দিয়ে যাচ্ছেন যে আপনি কেবলমাত্র cmd.exe সার্কিট 1989 ব্যবহার করতে পারবেন তবে এটি সত্য নয়। পাওয়ারশেলটি প্রতিটি ওএস সংস্করণ ভিস্তা + এ বেকড এবং এক্সপি / 2003 এ ইনস্টলযোগ্য। এটা তোলে হয় উইন্ডোজ ভবিষ্যত।

সম্পাদনা: ঠিক আছে, এটি আপনার উপায় আছে।

C:\> netstat -an > temp.txt && for /l %l in (1,1,10) do @for /f "tokens=1,2* delims=:" %a in ('findstr /n /r "^" temp.txt ^| findstr /r "^%l:"') do @echo %b

নেটট্যাট আউটপুট প্রথম 10 লাইন প্রদর্শন করবে।


5
আমার সন্দেহ নেই যে পাওয়ারশেল ভবিষ্যত, তবে আমার এখন এমন কিছু কাজ করা দরকার যা এখন কাজ করে। একটি এন্টারপ্রাইজ বাস্তবতায়, প্রায়শই আমাদের টেক সাপোর্ট বিভাগের গ্রাহকদের শত শত উইন্ডো সার্ভার থাকে যার মধ্যে ভিস্টা 7 বা 8 থাকে না আমি যতবার কমান্ড চালানোর দরকার পড়ার সাথে সাথে পাওয়ারশেল ইনস্টল করতে সময় নষ্ট করতে পারি না, আমিও নই এমনকি অনুমোদিত।
গাইকসার

Cmd.exe এটি ...
রায়ান রেইস

তাদের কেবলমাত্র একটি w2k8r2 সার্ভারের প্রয়োজন যা তারা পাওয়ারশেল কমান্ড চালাতে লগ ইন করতে পারে, তা কি সম্ভব?
টনি রথ

আমি জানি না 2K8 সার্ভার আছে কিনা, তবে রায়ান রিসের উত্তরটি আমার যা প্রয়োজন তা ঠিক is আপনাকে অনেক ধন্যবাদ রায়ান!
গাইকসার

1
দয়া করে ভুলে যাবেন না ... উত্তরটিকে ... স্বীকৃত হিসাবে চিহ্নিত করুন ...: `( কোণে ভ্রূণের অবস্থানে কার্লস আপ হয়ে আত্মায় কাঁপুন
রায়ান রিজ

8

আপনি যদি ইউনিক্স ধরণের ব্যক্তি হন তবে সম্ভবত সাইগউইন ইনস্টল করা আপনাকে আরও পরিচিত পরিবেশ দেয়।


2
না, আমি ভেবেছিলাম আমি এটি পরিষ্কার করে দিয়েছি, তবে আমি কিছু ইনস্টল করতে পারি না। এটি অবশ্যই উইন্ডোজ কমান্ড প্রসেসরের (cmd.exe) দিয়ে চালানো উচিত। পাওয়ারশেল নেই, সাইগউইন নেই, কোনও স্ক্রিপ্ট নেই।
জিক্সার

3

forলুপ ব্যবহারের চেয়ে অনেক সহজ একটি সহজ সমাধান রয়েছে ।

উদাহরণস্বরূপ আউটপুটটি dir/o-d( dirতারিখ দ্বারা বিপরীত-অর্ডার) নেওয়া যাক ।

যেমন আপনি যদি ১ থেকে ১ 1 লাইন আউটপুট করতে চান তবে ব্যবহার করুন:

dir/o-d|findstr/n ^^|findstr "^[1-9]: ^1[0-6]:"

উদাহরণস্বরূপ, আপনি 16 থেকে 45 লাইন আউটপুট করতে চান, ব্যবহার করুন:

dir/o-d|findstr/n ^^|findstr "^1[6-9]: ^[2-3][0-9]: ^4[0-5]:"

নমুনা আউটপুট:

16:08/08/2016  08:43 AM    <DIR>          nacl_sdk
17:11/05/2016  10:48 PM    <DIR>          3b 2
18:28/04/2016  02:47 PM    <DIR>          sample
19:22/04/2016  10:07 PM    <DIR>          mysql test
20:16/04/2016  01:22 AM    <DIR>          3b
21:16/04/2016  01:10 AM             2,706 errorlog
22:16/04/2016  12:53 AM                 0 accesslog
...

ভাঙ্গন:

  1. প্রথমে পুরো আউটপুটটি ব্যবহার করে ডাম্প করুন dir/o-d

  2. এরপরে, প্রতিটি লাইনের সাহায্যে " $Num:" চাপ দিনfindstr/n ^^

    • ^মানে লাইন শুরুর মিল, আর ^^কেবল এটিই এড়িয়ে যাওয়া সংস্করণটি প্রয়োজনীয় কারণ আমরা সেমিডিতে আছি।

    • দ্রষ্টব্য: আপনার এটির findstrজন্য ব্যবহার করা দরকার কারণ find/n" "স্পেসেস ছাড়াই লাইনের সাথে মেলে না `

  3. শেষ অবধি, ব্যবহার করে আউটপুট ক্রপ করুন findstr "^1[6-9]: ^[2-3][0-9]: ^4[0-5]:"

    • ^1[6-9]: 16 থেকে 19 এর জন্য রেজেক্স।

    • ^[2-3][0-9]: 20 - 39 এর জন্য রেজেক্স।

    • ^4[0-5]: 40 থেকে 45 এর জন্য রেজিেক্স।

    • findstr "a b c"মানে স্ট্রিং যা পারেন এক্সপ্রেশন মেলে এটি a, bঅথবা c

এছাড়াও /programming//q/8844868/632951 দেখুন


এটি একটি দুর্দান্ত সমাধান, তবে আপনি এখন সেখানে নম্বরটি পূর্বনির্ধারিত রেখেছেন, কেউ কি সর্বশেষ ফাইন্ডস্টার কলটিতে এগুলি থেকে মুক্তি পেতে পারেন?
fschmitt

@fschmitt, findstrজিনিসগুলি সরাতে পারে না। আমি মনে করি আপনি তখন লুপ ব্যবহার করতে বাধ্য হবেন।
পেসারিয়ার

0

এটি একটি এক-লাইন-কমান্ড, আমি আশা করি এটি আপনার পক্ষেও কার্যকর হয়।

@echo off&cls&for /f "tokens=*" %a in (Graph.bat) do echo %a&for /f "skip=1 tokens=*" %a in (Graph.bat) do echo %a&for /f "skip=2 tokens=*" %a in (Graph.bat) do echo %a&for /f "skip=3 tokens=*" %a in (Graph.bat) do echo %a&for /f "skip=4 tokens=*" %a in (Graph.bat) do echo %a&pause>nul

:: Run this from CMD.exe and make sure that your file is in your current working directory.

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