यह अब एक पुराना प्रश्न है, लेकिन मैं यहाँ एक उत्तर की तलाश में आया हूँ ताकि मुझे लगा कि मैं अपने प्रयोग के परिणाम दूंगा।
एक $psISE
वस्तु है जो आईएसई सेटिंग्स, खुली फाइलों आदि को नियंत्रित करती है। बहुत कुछ है जो आप इसके साथ कर सकते हैं।
एक आशाजनक दिखने वाला कार्य था:
$psISE.CurrentPowerShellTab.Files.Clear()
दुर्भाग्य से, यह बस सभी खुली फाइलों को बंद कर देगा (यदि वे बच गए थे) और फिर एक नई अनटाइटल्ड फ़ाइल खोलें।
मैंने इसे समाप्त किया:
$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
$file = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($file)
}
मूल रूप से, यह खुली हुई फ़ाइलों की जाँच करता रहता है, और उन्हें तब तक बंद करता है जब तक कि कोई भी खुला न रह जाए। यदि आप इसे अंतःक्रियात्मक रूप से चलाना चाहते थे, और इसमें कोई सहेजा हुआ दस्तावेज़ नहीं खुला था, तो आप बहुत जल्दी त्रुटि से भर जाएंगे क्योंकि यह बंद होने में विफल रहता है और फिर इसे बंद करने की कोशिश करने के लिए वापस लूप हो जाता है।
फिर आप इसे अपने ISE प्रोफ़ाइल (C: \ username \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1) में डाल सकते हैं। इस समय मेरा प्रोफ़ाइल ऐसा दिखता है:
$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) {
$file = $psISE.CurrentPowerShellTab.Files[0]
$psISE.CurrentPowerShellTab.Files.Remove($file)
}
psEdit $PSScriptRoot\snips.ps1
चूंकि यह ISE को लॉन्च करते समय चलता है, इसलिए यह डिफॉल्ट अनटाइटल्ड फाइल को बंद कर देता है और इसके साथ रेफर करने के लिए मुझे पसंद किए जाने वाले छोटे स्निपेट के साथ एक रैंडम फाइल खुलती है। आप उस अंतिम पंक्ति को छोड़ सकते हैं या उस किसी भी फ़ाइल में बदल सकते हैं जिसे आप खोलना चाहते हैं।
nb जो कि $null =
आउटपुट को दबाने के लिए है, और यह पाइप करने की तुलना में तेज़ है Out-Null
(जो मुझे लगता है कि महत्वपूर्ण है जब आप अपने संपादक को लोड करने के लिए इंतजार कर रहे हैं।)