2012-12-16 14 views
6

मैं विजुअल स्टूडियो 2010 में सी #/नेट 4.0 का उपयोग कर पावरशेल 3.0 cmdlet विकसित कर रहा हूं। मैं पावरशेल में वर्तमान निर्देशिका प्राप्त करना चाहता हूं जहां उपयोगकर्ता cmdlet निष्पादित करता है। लेकिन Directory.GetCurrentDirectory() अपेक्षित के रूप में काम नहीं करता है। नीचे दिए गए कोड में, परिणाम सी: \ उपयोगकर्ता \ प्रशासक है।मैं PowerShell cmdlet में वर्तमान निर्देशिका कैसे प्राप्त कर सकता हूं?

प्रश्न: cmdlet कोड PowerShell की वर्तमान निर्देशिका प्राप्त करने के लिए उपयोग किया जाता है?

[System.Management.Automation.Cmdlet(System.Management.Automation.VerbsCommon.Get, "StatusBar")] 
public class GetStatusBarCommand : System.Management.Automation.PSCmdlet 
{ 
    /// <summary> 
    /// Provides a record-by-record processing functionality for the cmdlet. 
    /// </summary> 
    protected override void ProcessRecord() 
    { 
     this.WriteObject(Directory.GetCurrentDirectory()); 
     return; 
    } 
} 
+0

$ (मिल-स्थान) या $ पीडब्ल्यूडी –

उत्तर

20

एक पावरशेल प्रक्रिया में एकाधिक रनस्पेस हो सकते हैं, इसलिए एक वैश्विक निर्देशिका PowerShell के लिए काम नहीं करती है। इसके अलावा, PowerShell में आपकी वर्तमान निर्देशिका रजिस्ट्री के भीतर हो सकती है और फ़ाइल सिस्टम के भीतर नहीं। हालांकि, अगर आप इतने तरह PowerShell एपीआई के साथ फाइल सिस्टम निर्देशिका पहुँच सकते हैं:

this.SessionState.Path.CurrentFileSystemLocation 
+0

मैं रजिस्ट्री के बारे में सोचा hadnt। ये एक अच्छा बिंदु है। हाँ, यह। SessionState.Path.CurrentFileSystemLocation काम करता है। धन्यवाद! –

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