2010-01-25 5 views
8

मैं अपने पुराने पसंदीदा 4NT से PowerShell पर स्विच करने का प्रयास कर रहा हूं। इसमें बहुत सारी नस्लों की कमी है कि पिछले 20 वर्षों में 4NT जोड़ रहा है (मैं एक पुराना 4 डीओएस उपयोगकर्ता हूं)।powerhell.exe से बेहतर PowerShell होस्ट?

उदाहरण के लिए, 4NT में यदि आप कुछ अक्षर टाइप करते हैं तो ऊपर/नीचे दबाएं, फिर इतिहास सूची आपके द्वारा लिखे गए द्वारा फ़िल्टर की जाती है। पृष्ठ ऊपर/नीचे सभी मैचों के साथ एक पॉपअप करता है और आप उनके माध्यम से कर्सर कर सकते हैं। कंसोल विंडो स्पेस में सभी, कोई जीयूआई नहीं। यह एक बड़ा समय बचाने वाला है जो मुझे याद आती है। Powerhell.exe से इस तरह की कई अन्य चीजें गायब हैं।

क्या powerhell.exe के कोई विकल्प हैं जिनमें शायद इस तरह की विशेषताएं हैं, जो वास्तव में कंसोल पर्यावरण का लाभ उठाती है? मुझे एहसास है कि बहुत से जीयूआई-आधारित उपकरण हैं जो पावरशेल को एक फलक के रूप में एम्बेड करते हैं, लेकिन मुझे वास्तव में एक cmd.exe/4nt.exe प्रतिस्थापन में रूचि है जो 100% कंसोल एप्लिकेशन के रूप में रहता है (शायद एक विकल्प संवाद या जो कुछ)।

उत्तर

10

यहोशू ने पहले से ही F7 का उल्लेख किया है। आप कुछ कमांड टाइप करके और F8 दबाकर Powershell.exe में आंशिक इतिहास मिलान भी कर सकते हैं - मैचों के माध्यम से चक्र के लिए F8 दोहराएं (about_history देखें)। आम तौर पर लोगों के बारे में कुछ और लाइन संपादन सुविधाएं भी होती हैं। ये about_line_editing सहायता विषय में प्रलेखित हैं। फिर भी, PowerShell कंसोल होस्ट में लाइन संपादन वांछित होने के लिए कुछ छोड़ देता है। एफडब्ल्यूआईडब्ल्यू अन्य सभी मेजबान जिन्हें मैं जानता हूं वे जीयूआई आधारित हैं।

बीटीडब्ल्यू मैं वर्षों के लिए एक 4NT उपयोगकर्ता था (साथ ही कॉर्न शैल उपयोगकर्ता)। 4NT में पाए जाने वाली कुछ लापता सुविधाओं के साथ भी, मुझे पावरशेल एक अधिक सक्षम खोल मिलती है, और एक डेवलपर के रूप में, सभी "भाषा" बिट्स अनुकूलित करने और उपयोग करने के लिए बहुत आसान हैं। मुझे कभी भी कॉर्न शेल if/fi और case/esac कथन पसंद नहीं आया - बस मुझे एटेटिक्स की गलत समझ को गलत तरीके से रगड़ दिया।

# Search history using regex 
PS> get-history -count 999 | select-string '\b(fl|ft)\b' 

# Look at your shell usage pattern by hour of day - Name column is hour of day 
PS> ghy | group {$_.StartExecutionTime.Hour} 

Count Name  Group 
----- ----  ----- 
    30 21   {$allargs, echoargs -arg $allArgs, echoargs $a 
    2 22   {ghy | group {$_.StartExecutionTime.Hour}, ls} 

# Look at commands in terms of execution time (sorted descending) 
PS> ghy | Select CommandLine,Id,` 
     @{n='ExecutionTime';e={$_.EndExecutionTime - $_.StartExecutionTime}} | 
     Sort ExecutionTime -Desc 

CommandLine          Id ExecutionTime 
-----------          -- ------------- 
ls C:\Windows\System32 ...       94 00:00:06.0233445 
ls C:\Windows\System32\...       93 00:00:01.1360650 
gps | fl           89 00:00:00.5780330 
dir            80 00:00:00.0950054 
ls             83 00:00:00.0870050 
ghy | Select CommandLin...       92 00:00:00.0810046 
dir            67 00:00:00.0750042 
ghy | Select CommandLin...       95 00:00:00.0580034 
ghy | Select CommandLin...       96 00:00:00.0570032 
ghy | Select CommandLin...       97 00:00:00.0540031 
dir            76 00:00:00.0500029 
get-history -count 999 ...       88 00:00:00.0420024 
+0

यह मेरा तीसरा 4NT से अधिक ले जाने की कोशिश है और मैं इसे इस समय छड़ी बनाने के लिए जा रहा हूँ प्राप्त करने के लिए Get-Process #n<tab>| #s<tab> लिख सकते हैं। F7/F8 के बारे में जानना अच्छा है, धन्यवाद! अब अगर केवल ctrl-v के बराबर शॉर्टकट था तो मुझे माउस तक पहुंचने की ज़रूरत नहीं है .. शायद ऑटोहोटीकी मुझे अंतराल को भरने में मदद कर सकती है। – scobi

+2

पेस्ट के लिए, Alt + Space, E, P - cheesy आज़माएं लेकिन यह काम करता है। –

+0

इस पुराने धागे की समीक्षा करना .. मैं कंसोल 2 [http://sourceforge.net/projects/console/] के माध्यम से पावरहेल चलाता हूं और यह कट/कॉपी/पेस्ट कार्यक्षमता (कई अन्य चीजों के बीच) प्रदान करता है। – scobi

2

पावरहेल अभी भी बहुत नया है, इसलिए इनमें से कुछ को लागू करने के लिए किसी को ढूंढें। अभी के लिए, हालांकि, आप कमांड इतिहास प्राप्त करने के लिए F7 दबा सकते हैं और उस से चयन कर सकते हैं। पावरहेल में टैब पूर्णता सामग्री बहुत शक्तिशाली है, और आप वाइल्डकार्ड का उपयोग कमांड टैब पूर्ण करने के लिए भी कर सकते हैं (यहां तक ​​कि आंशिक cmdlet नामों पर भी)।

3

अरे, तुम मुझे के रूप में ही इतिहास है: :-) प्लस PowerShell में आप की तरह अपने इतिहास के साथ बढ़िया उत्पाद कर सकते हैं। मैं भी एक पुराना 4 डीओएस/4 एनटी उपयोगकर्ता हूं। मैं नए फंसेड होस्ट्स का प्रशंसक नहीं हूं जो इनपुट के लिए कंसोल सबसिस्टम को पूरी तरह से बदलता है और यही कारण है कि मुझे पावरशेल प्लस पसंद है - इसके मूल पर यह अभी भी एनटी कंसोल है लेकिन इसमें कई आधुनिक ग्राफिकल फीचर्स हैं जिन्हें वांछित के रूप में वापस किया जा सकता है।

http://www.idera.com/Products/PowerShell/PowerShell-Plus/

वहाँ एक 30 दिन परीक्षण उपलब्ध है और लेखक टोबियास Weltner बहुत अनुरोध/सुझाव मदद करने के लिए उत्तरदायी है।

-Oisin

+0

अरे ओसीन, मुझे नहीं पता था कि यह कंसोल सबसिस्टम - कूल का इस्तेमाल करता था। मान लीजिए कि सभी फैंसी जीयूआई खिड़कियां मुझे फेंक देती हैं। :-) –

4

बाहर चेक PowerTab। यह एक शानदार (और मुफ्त) ऐड-ऑन है जो आपको कुछ वाकई अच्छी टैब-पूर्णता सुविधाएं प्रदान करता है।

अद्यतन

PowerTab एक नया मेजबान है।

+0

नया संस्करण, नई विशेषताएं, नई होस्टिंग। http://powertab.codeplex.com – JasonMArcher

5

# का उपयोग कर अपने कमांड इतिहास के माध्यम से टैब करना भी संभव है।

F8 का उपयोग करने के नुकसान में से एक यह है कि यह मामला संवेदनशील है और यह केवल एक कमांड की शुरुआत से मेल खाता है।#<partial match><tab> का उपयोग केस असंवेदनशील है और पिछले आदेशों में किसी भी स्थिति में टेक्स्ट से मेल खाता है।

आप निम्न आदेश इतिहास है, तो:

# 1 
$np = Start-Process notepad -PassThru 
# 2 
$np| get-process 
# 3 
$np| Stop-Process 

टाइप #pr तो टैब बार-बार होगा चक्र के माध्यम से 1, 2 और 3

टाइप #st तो टैब बार-बार होगा 1 और 3

के माध्यम से चक्र

केवल # का उपयोग करके सभी इतिहास मिलेंगे।

# का उपयोग कमांड के भाग में प्रवेश करने के बाद भी किया जा सकता है। यदि आपका इतिहास है:

'notepad' 
select * 

आप Get-Process 'notepad'| select *

+0

ये, यह एफ 8 की केस-संवेदनशीलता के बारे में अजीब बात है। पीएस टीम ने उन सभी चीजों को बनाने के लिए वास्तव में कड़ी मेहनत की जो आम तौर पर केस संवेदनशील नहीं हैं, और फिर भी वे इसे याद करते हैं। वास्तव में एक गलती की तरह लगता है। –

+0

@ElroyFlynn - F8 विंडोज कंसोल का एक फ़ंक्शन है, पावरशेल नहीं (आप इसे cmd.exe से भी उपयोग कर सकते हैं)। पीएस टीम का कोई नियंत्रण नहीं था क्योंकि PowerShell अस्तित्व में आने से पहले F8 कंसोल फ़ंक्शन मौजूद था। – Rynant