2011-01-12 6 views
17

मैं उसी प्रारूप में टिप्पणी-आधारित सहायता प्रदर्शित करने के लिए गेट-हेल्प cmdlet का उपयोग करने का प्रयास कर रहा हूं जिसमें यह उत्पन्न होने वाले cmdlet सहायता विषयों को प्रदर्शित करता है एक्सएमएल फाइलों से। ऐसा करने की क्षमता TechNet पर about_Comment_based_Help में प्रलेखित है, लेकिन जब मैं अपनी स्क्रिप्ट के विरुद्ध get-help cmdlet निष्पादित करता हूं तो मुझे केवल स्क्रिप्ट नाम लौटाया जाता है। किसी भी सहायता की सराहना की जाएगी!उसी प्रारूप में टिप्पणी-आधारित सहायता प्रदर्शित करने के लिए गेट-हेल्प cmdlet का उपयोग करें

PS C:\Admin> Get-Help .\checksystem.ps1 -full 
checksystem.ps1 

checksystem.ps1 स्क्रिप्ट:

function IsAlive { 
     <# 
     .DESCRIPTION 
     Checks to see whether a computer is pingable or not. 

     .PARAMETER computername 
     Specifies the computername. 

     .EXAMPLE 
     IsAlive -computername testwks01 

     .NOTES 
     This is just an example function. 
     #> 


      param (
       $computername 
      ) 
      Test-Connection -count 1 -ComputerName $computername -TimeToLive 5 | 
      Where-Object { $_.StatusCode -eq 0 } | 
      Select-Object -ExpandProperty Address 
     } 

IsAlive -computername 192.168.1.1 

उत्तर

16

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

. .\checksystem.ps1 ; get-help isalive -full 
12

यह काम करता है, तो आप सिर्फ होगा कि आप सही शीर्षकों किया हुआ है। मैंने हमेशा फ़ंक्शन के ठीक ऊपर टिप्पणी ब्लॉक भी लगाया है। मुझे यकीन नहीं है कि यह समारोह के अंदर काम करना है या नहीं।

नीचे मेरे कार्यों में से एक का उदाहरण है जिसमें एक कार्यशील कार्य सहायता है।

############################################################################## 
#.SYNOPSIS 
# Gets a COM object from the running object table (ROT) similar to GetObject 
# in Visual Basic. 
# 
#.DESCRIPTION 
# To maintain consistency with New-Object this cmdlet requires the -ComObject 
# parameter to be provided and the TypeName parameter is not supported. 
# 
#.PARAMETER TypeName 
# Not supported, but provided to maintain consistency with New-Object. 
# 
#.PARAMETER ComObject 
# The ProgID of a registered COM object, such as MapPoint.Application. 
# 
#.PARAMETER Force 
# If an existing object is not found, instead of writing an error, a new 
# instance of the object will be created and returned. 
# 
#.EXAMPLE 
# $olMailItem = 0 
# Get-Object -ComObject Outlook.Application | %{$_.CreateItem($olMailItem).Display()} 
############################################################################## 
function Get-Object { 

    [CmdletBinding(DefaultParameterSetName='Net')] 
    param (

     [Parameter(ParameterSetName='Net', Position=1, Mandatory=$true)] 
     [String]$TypeName, 

     [Parameter(ParameterSetName='Com', Mandatory=$true)] 
     [String]$ComObject, 

     [Parameter()] 
     [Switch]$Force 

    ) 

    if ($TypeName) { throw '-TypeName is not supported. Use -ComObject instead.' } 

    if ($ComObject) { 
     try { 
      [System.Runtime.InteropServices.Marshal]::GetActiveObject($ComObject) 
     } 
     catch [System.Management.Automation.MethodInvocationException] { 
      if ($Force) { New-Object -ComObject $ComObject } 
      else { Write-Error "An active object of type $ComObject is not available." } 
     } 
    } 

} 
+3

पावरशेल संस्करण 3 में टिप्पणियां एक समारोह के अंदर और बाहर दोनों काम करती हैं: http://technet.microsoft.com/en-us/library/dd819489.aspx –

+1

पावरशेल 3 में भी बेहतर, आप भी नहीं पैरामीटर सहायता को चिह्नित करने की आवश्यकता है। पैरामीटर के ऊपर बस एक नियमित टिप्पणी डालें और पावरशेल इसे आंकड़े बताएं। – Josh

+0

इस http://technet.microsoft.com/en-us/library/dd819489.aspx फ़ंक्शन के बाहर टिप्पणियां Powerhell 2.0 पर भी लागू होती हैं। – Raj

4

नोट - आप .PARAMETER के बाद एक पैरामीटर का नाम जोड़ने के लिए भूल जाते हैं, अपने कस्टम सहायता पाठ में से कोई भी जब आप मिल-सहायता चलाने

इसी प्रकार, यदि आप किसी भी कीवर्ड के गलत लिखा दिखाई देगा कस्टम मदद प्रदर्शित नहीं की जाएगी।

संबंधित मुद्दे