পাওয়ারশেলের 'আরও' বা 'কম' কমান্ডের সমান?


95

লিনাক্স-ইউনিক্স শেলগুলিতে কিছু 'আরও' কমান্ডে পাইপ করে আউটপুটকে কীভাবে প্যাগিনেট করার উপায় আছে?


4
যারা কম জানেন না তাদের ক্ষেত্রে কয়েকটি দুর্দান্ত জিনিস হ'ল আপনি পিছন দিকে যেতে পারেন, তীরগুলি ব্যবহার করতে পারেন, পৃষ্ঠাটি উপরে / নীচে ব্যবহার করতে পারেন এমনকি '/' কীটি ব্যবহার করে অনুসন্ধান করতে পারেন এবং ফলাফলগুলি হাইলাইট করতে পারেন।
কনস্টান্টিনো ক্রোনমবার্গার

উত্তর:


71

ঠিক আছে ... "আরও" আছে, যা কম বা কম (...) আপনি অন্যান্য প্ল্যাটফর্মগুলি থেকে আশা করতেন তেমনই। নিম্নলিখিত উদাহরণ ব্যবহার করে দেখুন:

dir -rec | more

4
আরও হুবহু এটি করে, আপনি যখন আরও বেশি জিসিএম দিয়ে ফাংশনটির সংজ্ঞাটি দেখুন একবার | সংজ্ঞাটি নির্বাচন করুন | fl
জয়ে

4
প্রকৃতপক্ষে, আরও পাইপ দেওয়া "আউট-হোস্ট-পেজিং" এর সাথে পাইপিংয়ের সমান, যা আরও ডট কম প্রয়োগের থেকে পৃথক। অনুশীলনে যদিও কোন পৃথক পৃথক আছে।
Jouni Heikniemi

4
মজাদার! আমার জন্য, জিসিএম আরও দুটি সংজ্ঞা দেয়, একটি পাওয়ারশেল ফাংশন যা খালি যুক্তি দিলে "$ ইনপুট | আউট-হোস্ট-পি" করে, যা আমি জিসিসি-রেকে দেখছি আরও অন্যদিকে, আমি যখন জিসিআই-রেক করি আরো ডট কম, আমি স্বাভাবিক ডট কমের আচরণ পেয়েছি। পিএস 2 ইনস্টলডযুক্ত ডাব্লু 7 আরসি তে, আমি "আরও" টাইপ করার পরেও আরও ডট কম পেয়েছি বলে মনে হয়। পিএস 1 সহ ভিস্তার উপর, উপরে বর্ণিত আচরণটি ঘটে। Huddledmasses.org/… এর ভিত্তিতে , আপনি কি ভাবেন না যে ডাব্লু 7-তেও ফাংশনটি সম্পাদন করা উচিত? হুম ...
জৌনি হাইকনিমি

4
দুঃখিত, এটি বিশেষভাবে লিখিত ছিল না। সুতরাং আমার বক্তব্যটি ছিল বিদ্যুৎ 1 এর সাথে ভিস্তার উপর, কেবল "আরও" তে পাইপিং করা আউট-হোস্ট-পি কে ডাকে যখন ডাব্লু 7 পাওয়ারশেল 2 এর সাথে এটি আরও ডটকমকে ডাকে।
Jouni Heikniemi

4
হ্যাঁ, আমি সংশোধন করছি। দুঃখিত হ্যাঁ, প্রকৃতপক্ষে, পিএস 1 এ এটি আউট-হোস্ট-পি-কে আরও ডটকম-র জন্য আহ্বান জানায় না (স্বরে নোট করুন: সর্বদা পুরো ফাংশনটি পড়ুন, এটি দেখতে খুব সাদৃশ্যযুক্ত হলেও)
জোয়ে

105

হ্যা এখানে:

some-cmdlet | out-host -paging


আমি এর আগে কম বেশি ব্যবহার করেছি, যতটা সম্ভব আমার পক্ষে সম্ভব মনে করা উচিত friendly আমি এই প্রকরণটি অন্যের চেয়ে বেশি দরকারী / ব্যবহারযোগ্য বলে মনে করেছি। অনেক ধন্যবাদ.
TheXenocide

খুব বড় ফাইলের বিষয়বস্তু মুদ্রণের জন্য এটি আমার পক্ষে খুব ভাল কাজ করেছে কারণ গেট-কনটেন্টের সিএমডিলেট আউট হোস্ট সিএমডিলেটটিতে সামগ্রীগুলি পাইপ করার জন্য সুরক্ষিত কাজ শুরু করেছিল।
জার্মানি

13
নোট করুন যে আউট-হোস্টের -পেজিং প্যারামিটার পাওয়ারশেল আইএসই সমর্থন করে না।
মার্টিন হোলিংসওয়ার্থ

@ ব্রুনো ব্র্যান্ট এটি মুখ্য নয়। আপনি আউটপুট যেকোন কিছুতে পাইপ করতে পারেন; lessএটি কেবলমাত্র একটি বড় পাঠ্য দর্শকের অ্যাপ্লিকেশন যা stdinএই পাঠ্যের জন্য গ্রহণ করে। আপনি এটি একটি অস্থায়ী ফাইলে পাইপ করতে পারেন এবং এটি এভেন মোয়ার পাওয়ারের জন্য nanoবা এটি খুলতে পারেন vim! বিন্দু নয়। পাওয়ারশেলটি bash(তবে আরও ভাল, ইমো) এর মতো। lessমধ্যে নেই bash; এটি একটি পৃথক বাইনারি। সুতরাং আপনার সমালোচনা বৈধ নয়।
অ্যালান ম্যাকবি

7
এছাড়াও, উত্তরে মন্তব্য করুন: উপনামটি ohএর জন্য Out-Host, এবং কোনও বিরোধ না থাকলে প্যারামিটারগুলি সংক্ষিপ্ত করা যেতে পারে, সুতরাং আদেশটি হতে পারেSome-Cmdlet | oh -p
অ্যালান ম্যাকবি

34

dir -rec | more খারাপ পরামর্শ।

এটি স্ক্রিনে আউটপুট দেওয়ার আগে পুরো কমান্ডটি মূল্যায়ন করার জন্য পাওয়ারশেল তৈরি করবে, এমন কিছু যা আউটপুট পৃষ্ঠায়িত করার মতো দরকার নেই

কিছু চরম ক্ষেত্রে এটি সিস্টেমে ক্রাশের কারণ হতে পারে (উদাঃ dir 'C:\' | more)

অন্যদিকে, out-host -pagingউইল তথ্যটি স্ক্রিনে পাওয়া যায় বলে এটি ব্যবহার করে ।


4
আপনি যখন রিমোট পাওয়ারশেল ব্যবহার করেন এবং পেজারের মাধ্যমে রিমোট উইন্ডোজ সার্ভারে একটি কমান্ডটি পাইপ করতে চান, তখন out-host -paging কাঙ্ক্ষিত হিসাবে কাজ করে। moreরিমোট কমান্ড চালানোর সময় পাইপিংয়ের কোনও উপকার হয় না: পুরো পাঠ্যটি একবারে প্রদর্শিত হবে।
IllvilJa

4
উপন্যাসটি out-host -pagingহ'ল oh -pa
জোশ

28

PowerShell কমিউনিটি এক্সটেনশানগুলি একটি সহজ ফাংশন 'কম' নামক যে আরো একটি সম্পূর্ণ ইউনিক্স-শৈলী বৈশিষ্ট্য সেট প্রদান less.exe একটি বৈশিষ্ট্যসমূহ নিয়ে আসা কপি ব্যবহার আসলে পেজিং হ্যান্ডেল করতে হবে।

আপনি এডমিন শেল শুরু করে এবং এটি চালিয়ে ইনস্টল করতে পারেন :

Find-Package pscx | Install-Package -Force

( forceপুরানো সংস্করণ আপগ্রেড করা হয়)

আপনি এটিতে স্ট্রিং পাইপ করতে পারেন, বা সরাসরি পরামিতি হিসাবে ফাইলের নাম দিতে পারেন।

type foo.txt | less
less foo.txt, bar.txt, baz.txt

এটি কনেমু এবং পাওয়ারশেল উইন্ডোতে কাজ করে তবে দুর্ভাগ্যক্রমে এটি v2.0 ISE এর অধীনে আপনি যেভাবে প্রত্যাশা করতেন তা কাজ করে না।


6
ইনস্টলেশন বিভিন্ন মৌলিক PowerShell কমান্ড অগ্রাহ্য (gcb, সম্প্রসারণ-আর্কাইভ, বিন্যাস-হেক্স পেতে-হ্যাশ, সাহায্যের, প্রম্পট পেতে-ক্লিপবোর্ড পেতে-সহায়তা, সেট-ক্লিপবোর্ড) বলার অপেক্ষা রাখে না "তাই forceপুরোনো সংস্করণগুলি আপগ্রেড হয়" একটি বলে মনে হয় সামান্য বিভ্রান্তিকর।
টিএনটি

কেবল ত্রুটি বা সতর্কতা ব্যবহার ছাড়াই বর্তমান ব্যবহারকারীর জন্য ইনস্টল করুন:Find-Package pscx | Install-Package -Force -scope currentuser -allowclobber
আন্দ্রেয়াস কোভিডিয়ট

দুর্দান্ত টিপের জন্য ধন্যবাদ!
রুই ক্রেভেরিও

10

আমি "কম" কমান্ডের চেয়ে "কম" কমান্ড পছন্দ করি। কম কমান্ডের সাহায্যে ফলাফলগুলি কেবল সামনের দিকে না গিয়ে পিছন দিকে পেজ করা যায়।

উইন্ডোজের জন্য গিট থেকে "কম" আমার পক্ষে কাজ করে *

টাইপিং সংরক্ষণ করতে আমি আমার পাওয়ার শেল প্রোফাইলে (") এর জন্য" এল "নামটি যুক্ত করেছিলাম notepad $profile:

sal l "C:\Program Files (x86)\Git\bin\less.exe"

lessউপরের পথে C:\Program Files\Git\usr\bin\less.exeবা অনুরূপ উভয়ের জন্য সন্ধান করুন ।


*: আমি PowerShell ত্রুটি ছিল Gow "কম" এর সংস্করণ।


4
আমিও. পিছনে পেজিং করা ছাড়াও, কম ফলাফল আমাকে ফলাফলের পাঠ্য অনুসন্ধান করতে দেয় (ফরোয়ার্ড স্ল্যাশ, তারপরে পাঠ্য টাইপ করুন, তারপরে প্রবেশের চাপুন, তারপরে পরবর্তী ফলাফলের জন্য 'এন', পূর্ববর্তী ফলাফলের জন্য 'পি')। খুব, খুব, সুবিধাজনক
রুই ক্রেভেরিও

lessএখানে অন্য একটি ফ্যান। তবে আমি এই ত্রুটি পেয়েছি। কোন পরামর্শ? ________________________________________PS C:\Users\oli> Get-Content tmpf | out-host 'C:\Program Files\Git\usr\bin\less.exe' Out-Host : A positional parameter cannot be found that accepts argument 'C:\Program Files\Git\usr\bin\less.exe'. At line:1 char:20 + Get-Content tmpf | out-host 'C:\Program Files\Git\usr\bin\less.exe' + CategoryInfo : InvalidArgument: (:) [Out-Host], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.OutHostCommand
অলিস্টেডম্যান

@ এলিসেস্টম্যান, এটি কম.এক্সির অফিশিয়াল গিট সংস্করণ। আপনি কি গিট ফর উইন্ডোজ gitforwindows.org সংস্করণের কম চেষ্টা করেছেন ?
জোশ

"আউট হোস্ট" ব্যবহার করার দরকার নেই। আমি এটি ব্যবহার করি: "গেট-কনটেন্ট টিএমপিএফ | সি: g সাইগউইন 64৪ \ বিন \ কম.exe"
কনস্টান্টিনো ক্রোনমবার্গার

4
এটি good env: PAGER = "C: \ cygwin64 \ bin \ less.exe" সেট করাও খুব ভাল ধারণা, সুতরাং আপনি "সহায়তা" টাইপ করার সময় এটি ব্যবহার করা হবে
কনস্টান্টিনো ক্রোনম্বার্গার


3

moreআউটপুট সীমাবদ্ধ করতে ব্যবহৃত হয় না , এটি প্যাগিনেটে ব্যবহৃত হয় আউটপুট এবং যদি কিছু থাকে তবে টার্মিনালে পড়া সহজ করে তোলে।

আপনি ব্যবহার সম্পর্কে কথা বলছেন headএবং tail? EggHadCafe এর একটি উদাহরণ রয়েছে:

type my.txt | select-object -first 10

type my.txt | select-object -last 10

অনুকরণ করা headএবং tail


পাইপিং বড় ফাইলগুলির জন্য অত্যন্ত ধীর slow সেখানে ভাল উপায় (বিল্ট-ইন অপশন) করতে হয় headএবং tailPowerShell এখন: stackoverflow.com/a/41626586/1081043
wisbucky

2

আমি আমার ডিফল্ট প্রোফাইলে একটি ফাংশন সংজ্ঞা এবং ওরফে যুক্ত করেছি %SystemRoot%\system32\windowspowershell\v1.0\profile.ps1

এই ফাংশনটি মূলত আমান Dালির এই ব্লগ এন্ট্রির উপর ভিত্তি করে Qপেজিংয়ের সময় টিপতে অতিরিক্ত ব্যতিক্রম হ্যান্ডলিং সহ ।

function more2
{
   param(
     [Parameter(ValueFromPipeline=$true)]
     [System.Management.Automation.PSObject]$InputObject
   )

   begin
   {
      $type = [System.Management.Automation.CommandTypes]::Cmdlet
      $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(‘Out-Host’, $type)
      $scriptCmd = {& $wrappedCmd @PSBoundParameters -Paging }
      $steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
      $steppablePipeline.Begin($PSCmdlet)
   }

   process
   {
      try
      {
         $steppablePipeline.Process($_)
      }
      catch
      {
        break;
      }
   }

   end
   {
      $steppablePipeline.End()
   }

   #.ForwardHelpTargetName Out-Host
   #.ForwardHelpCategory Cmdlet
}

New-Alias more more2

সুতরাং আমি কেবল এটির মতো কল করতে পারি dir -r | moreএবং এটি পাওয়ারশেলের পাইপলাইনের কারণে তত্ক্ষণাত্ পেজড আউটপুট শুরু করে (আরও ডটকমের সাথে সম্পূর্ণ আউটপুট অপেক্ষা করার বিপরীতে)।


1

আপনি ভিআইএম ইনস্টল করা থাকলে আমি পুরোপুরি উপভোগ করি dir -r | vim -R -। দুর্ভাগ্যক্রমে এটি একই সমস্যা ভোগ করে more(অর্থাত্ স্ট্রিমিং নয়)।


1
cat C:\Temp\test.txt

বিড়ালটি গেট-কনটেন্টের একটি নাম - বড় ফাইলের সাহায্যে আপনি টার্মিনালের নীচে - আরও - আউটপুট পাবেন

আপনি যোগ করতে পারেন - ওয়েট

cat C:\Temp\test.txt -wait 

ওয়েট লেজ ব্যবহার করার মতো তবে এটি আসলে আউটপুট সতেজ করে কমান্ডটি পুনরায় চালিত করছে

cat C:\Temp\test.txt | oh –Paging

ওহ = আউট হোস্ট


1

আমার ঠিক এই প্রশ্নটি ছিল (ভাল আমি কম চেয়েছিলাম, বেশি নয়) এবং @ রিচার্ড-বার্গের উত্তর আমার পক্ষে কাজ করেছে, পাওয়ারশেলের কাছে নতুন হয়ে (তবে লিনাক্সের কাছে নয়), আমি সেই উত্তরটি খুঁজে পেয়েছি (আমার জন্য) ছিল: আমার প্রথমে যেতে হবে:

Find-Package pscx | Install-Package

যা "ন্যুগেট প্যাকেজ ইনস্টল করার" জন্য অনুরোধ জানানো হয়েছিল। আমি এটি করেছি কিন্তু তারপরে
-AllowClobberপ্যারামিটারটি ব্যবহার করতে হয়েছিল Install-Package

তারপরে কম ব্যবহার করার জন্য, আমাকে করতে হয়েছিল:

Set-ExecutionPolicy RemoteSigned

যা সব কাজ করেছে :-)


সাইটে স্বাগতম। আপনি "উত্তর # 24" বলতে চাইছেন তা নিশ্চিত নন। এই সংখ্যাগুলি গণনার পরিবর্তে ভোট (যা পরিবর্তন করতে পারে)।
mhhollomon

আহ, আমি দেখছি ... প্রথমবার আমি ওভারফ্লো স্ট্যাক করার জন্য পোস্ট করেছি! আমি @ রিচার্ড-বার্গের উত্তরটি বোঝাতে চাইছিলাম, আমার কাছে এটিই গ্রহণযোগ্য উত্তর ছিল
বিল নায়লার ২২'১৯

নিশ্চিত না কেন আমি ডাউন ভোট পাব? মনে হচ্ছে (আমার কাছে) কখন কোনও কাজ হয়েছে তা নিশ্চিত হওয়া সহায়ক!
বিল নায়লার

0

পরামর্শ: ফাইলটিকে একটি অস্থায়ী / নিষ্পত্তিযোগ্য .txt ফাইলে রাখুন, তারপরে ওএস আপনার প্রিয় সম্পাদককে ডেকে আনুক, যেটি .txt এক্সটেনশনের সাথে যুক্ত।

গেট-প্রক্রিয়া | আউট-ফাইল temp.txt; । \ temp.txt

দ্রষ্টব্য: প্রতিবার আপনি এটি ব্যবহার করার সময় আপনি কোনও প্রাক-বিদ্যমান টেম্প। টেক্সট ফাইল ওভাররাইট করতে পারবেন। বুদ্ধি করে ফাইলের নামটি বেছে নিন।

উপরেরটি কেবল একটি প্রাথমিক ধারণা।
পরবর্তী পদক্ষেপটি এটিকে "| আরও" রূপান্তরিত করবে এলিয়াসগুলি বা প্রোফাইল ফাংশন, ইত্যাদি ব্যবহার করে using

এইচটিএইচ, মার্সেলো ফিনকিয়েলসটেইন

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