2017-05-22 7 views
6

से पाइप के बाद काम नहीं करता है मैं PowerShell आईएसई संपादक में निम्न पंक्ति टाइप करें, मैं Intellisense मिल डॉट ऑपरेटर के बाद:

Get-ChildItem ATextFile.txt | foreach { $_.FullName } 

इस मामले में , $_System.IO.FileSystemInfo का एक उदाहरण है। संपादक इस ऑब्जेक्ट से सभी सुलभ सदस्यों को सही तरीके से सूचीबद्ध करेगा।

अब, अगर मैं लिखने:

function GetFile { 
    return [System.IO.FileInfo]::new(".\ATextFile.txt") 
} 

GetFile | foreach { $_.FullName } 

स्क्रिप्ट ठीक चलाता है, लेकिन Intellisense $_ में डॉट ऑपरेटर के बाद काम नहीं करता।

क्या मुझे IntelliSense को सही तरीके से काम करने के लिए एक वाक्यविन्यास याद आ रहा है? शायद वापसी मूल्य "दस्तावेज" के लिए एक टिप्पणी?

उत्तर

5

आप परम अनुभाग के ऊपर OutputType विशेषता के लिए देख रहे हैं:

function GetFile { 
    [OutputType([System.IO.FileInfo])] 
    Param(

    ) 

    return [System.IO.FileInfo]::new(".\ATextFile.txt") 
} 

अनुमोदित क्रियाओं ई दर्शाने के लिए अपने फ़ाइल का नाम बदलने पर विचार करें। जी। Get-File। यह भी ध्यान रखें कि return कथन PowerShell में आवश्यक नहीं है, इसलिए आपका फ़ंक्शन इस तरह दिखना चाहिए:

function Get-File 
{ 
    [OutputType([System.IO.FileInfo])] 
    Param 
    (
    ) 

    [System.IO.FileInfo]::new(".\ATextFile.txt") 
} 
संबंधित मुद्दे