আমি যুক্তি দিয়ে বলব যে ভেরিয়েবলের $ MyInvocation.MyCommand.Path এর সুযোগটি সেট করে একটি আরও ভাল পদ্ধতি আছে:
প্রাক্তন> $ লিপি : MyInvocation.MyCommand.Name
এই পদ্ধতিটি অনুরোধের সমস্ত পরিস্থিতিতে কাজ করে:
EX: সামসস্ক্রিপ্ট.পিএস 1
function printme () {
"In function:"
( "MyInvocation.ScriptName: " + [string]($MyInvocation.ScriptName) )
( "script:MyInvocation.MyCommand.Name: " + [string]($script:MyInvocation.MyCommand.Name) )
( "MyInvocation.MyCommand.Name: " + [string]($MyInvocation.MyCommand.Name) )
}
"Main:"
( "MyInvocation.ScriptName: " + [string]($MyInvocation.ScriptName) )
( "script:MyInvocation.MyCommand.Name: " + [string]($script:MyInvocation.MyCommand.Name) )
( "MyInvocation.MyCommand.Name: " + [string]($MyInvocation.MyCommand.Name) )
" "
printme
exit
আউটপুট:
PS> powershell C:\temp\test.ps1
Main:
MyInvocation.ScriptName:
script:MyInvocation.MyCommand.Name: test.ps1
MyInvocation.MyCommand.Name: test.ps1
In function:
MyInvocation.ScriptName: C:\temp\test.ps1
script:MyInvocation.MyCommand.Name: test.ps1
MyInvocation.MyCommand.Name: printme
লক্ষ্য করুন উপরোক্ত গৃহীত উত্তর কীভাবে মেইন থেকে ডাকলে মান দেয় না return এছাড়াও, মনে রাখবেন যে যখন প্রশ্নটি কেবল স্ক্রিপ্টের নামটির জন্য অনুরোধ করেছিল তখন উপরের স্বীকৃত উত্তরটি পুরো পথটি দেয়। স্কোপড ভেরিয়েবল সব জায়গায় কাজ করে।
এছাড়াও, আপনি যদি পুরো পথটি না চান, তবে আপনি কেবল কল করবেন:
$script:MyInvocation.MyCommand.Path