आप अपनी स्क्रिप्ट्स के अंदर PowerShell अंतर्निहित स्क्रिप्ट कैसे चलाते हैं?
आप अंतर्निहित स्क्रिप्ट का उपयोग कैसे करते हैं
Get-Location
pwd
ls
dir
split-path
::etc...
वे आपके कंप्यूटर द्वारा चलाए जाते हैं, स्वचालित रूप से स्क्रिप्ट के पथ की जाँच करते हैं।
इसी तरह, मैं स्क्रिप्ट-ब्लॉक में स्क्रिप्ट का नाम डालकर अपनी कस्टम स्क्रिप्ट चला सकता हूं
::sid.ps1 is a PS script I made to find the SID of any user
::it takes one argument, that argument would be the username
echo $(sid.ps1 jowers)
(returns something like)> S-X-X-XXXXXXXX-XXXXXXXXXX-XXX-XXXX
$(sid.ps1 jowers).Replace("S","X")
(returns same as above but with X instead of S)
पावरशेल कमांड लाइन पर जाएं और टाइप करें
> $profile
यह फ़ाइल को पथ को लौटाएगा जो हमारी पॉवरशेल कमांड लाइन ऐप को खोलने पर हर बार निष्पादित करेगी।
यह इस तरह दिखेगा
C:\Users\jowers\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
दस्तावेज़ों पर जाएं और देखें कि क्या आपके पास पहले से ही एक WindowsPowerShell निर्देशिका है। मैंने ऐसा नहीं किया
> cd \Users\jowers\Documents
> mkdir WindowsPowerShell
> cd WindowsPowerShell
> type file > Microsoft.PowerShellISE_profile.ps1
हमने अब वह स्क्रिप्ट बनाई है, जो हर बार लॉन्च होने पर हम PowerShell ऐप खोलेंगे।
हमने जो कारण किया वह यह था कि हम अपने स्वयं के फोल्डर को जोड़ सकें, जो हमारी सभी कस्टम स्क्रिप्ट को पकड़ सके। चलो उस फ़ोल्डर को बनाते हैं और मैं इसे निर्देशिका के बाद "बिन" नाम दूंगा कि मैक / लिनक्स इसकी स्क्रिप्टों को पकड़ता है।
> mkdir \Users\jowers\Bin
अब हम चाहते हैं कि $env:path
जब भी हम एप्लिकेशन को खोलें तो वह WindowsPowerShell
डायरेक्टरी हमारे वैरिएबल में जुड़ जाए इसलिए डायरेक्टरी में वापस जाएं और
> start Microsoft.PowerShellISE_profile.ps1
फिर इसे जोड़ें
$env:path += ";\Users\jowers\Bin"
अब शेल स्वचालित रूप से आपकी कमांडों को ढूंढ लेगा, जब तक आप अपनी स्क्रिप्ट को उस "बिन" निर्देशिका में सहेजते हैं।
पॉवरशेल को पुनः लोड करें और इसे निष्पादित करने वाली पहली स्क्रिप्ट्स में से एक होनी चाहिए।
अपने पथ चर में अपनी नई निर्देशिका देखने के लिए पुनः लोड करने के बाद कमांड लाइन पर इसे चलाएं:
> $env:Path
अब हम अपनी स्क्रिप्ट को कमांड लाइन से या किसी अन्य स्क्रिप्ट के भीतर से इस तरह से कॉल कर सकते हैं:
$(customScript.ps1 arg1 arg2 ...)
जैसा कि आप देखते हैं कि हमें .ps1
विस्तार के साथ उन्हें तब तक बुलाना चाहिए जब तक हम उनके लिए उपनाम नहीं बनाते हैं। अगर हम फैंसला करना चाहते हैं।